Spaces:
Running
Running
adding project files to space
Browse files- Dockerfile +23 -0
- app.py +111 -0
- assets/shahrara_stopwords.txt +29 -0
- assets/stopwords.txt +1390 -0
- docker-compose.yml +9 -0
- requirements.txt +10 -0
- topic_modeling.py +97 -0
- utils.py +18 -0
Dockerfile
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
FROM python:3.9
|
2 |
+
|
3 |
+
RUN mkdir /app
|
4 |
+
WORKDIR /app
|
5 |
+
|
6 |
+
|
7 |
+
# download model and put in trained_model folder
|
8 |
+
# RUN wget https://drive.ahdsoft.dev/s/xp5Mb7bQ34Z7BRX/download/trained_model_10000.pt
|
9 |
+
# RUN mkdir trained_model
|
10 |
+
# RUN mv trained_model_10000.pt trained_model/
|
11 |
+
|
12 |
+
# download packages
|
13 |
+
COPY requirements.txt .
|
14 |
+
|
15 |
+
ENV HTTP_PROXY http://172.17.0.1:10805
|
16 |
+
ENV HTTPS_PROXY http://172.17.0.1:10805
|
17 |
+
ENV http_proxy http://172.17.0.1:10805
|
18 |
+
ENV https_proxy http://172.17.0.1:10805
|
19 |
+
|
20 |
+
RUN pip install -r requirements.txt
|
21 |
+
COPY . .
|
22 |
+
|
23 |
+
ENTRYPOINT ["streamlit", "run", "app.py", "--server.port=7272", "--server.address=0.0.0.0", "--client.showErrorDetails=false"]
|
app.py
ADDED
@@ -0,0 +1,111 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
# import numpy as np
|
3 |
+
import pandas as pd
|
4 |
+
from topic_modeling import TopicModeling
|
5 |
+
st.set_page_config(page_title='تحلیلگر متن عهد', page_icon = './ahd_logo.png', layout = 'wide')
|
6 |
+
@st.cache
|
7 |
+
def get_model():
|
8 |
+
tp_model = TopicModeling()
|
9 |
+
return tp_model
|
10 |
+
|
11 |
+
tp_model = get_model()
|
12 |
+
|
13 |
+
|
14 |
+
|
15 |
+
col1, col2, col3 = st.columns(3)
|
16 |
+
with col2:
|
17 |
+
st.title("تحلیل اسناد متنی")
|
18 |
+
|
19 |
+
# Upload CSV file
|
20 |
+
uploaded_file = st.file_uploader("آپلود فایل")
|
21 |
+
if uploaded_file is not None:
|
22 |
+
filename = uploaded_file.name
|
23 |
+
if filename.endswith('.xlsx'):
|
24 |
+
df = pd.read_excel(uploaded_file)
|
25 |
+
elif filename.endswith('.csv'):
|
26 |
+
df = pd.read_csv(uploaded_file)
|
27 |
+
else:
|
28 |
+
raise ValueError('Unsupported file format')
|
29 |
+
|
30 |
+
# Show first 10 rows of dataframe
|
31 |
+
st.write(df.head(10))
|
32 |
+
|
33 |
+
# Select columns to use for topic modeling
|
34 |
+
cols = st.multiselect("ستونهای متنی موردنظر را انتخاب نمایید", df.columns)
|
35 |
+
ratio = st.slider('چند درصد از کل دادگان پردازش شود',min_value=0, max_value=100)
|
36 |
+
col1, col2, col3 , col4, col5 = st.columns(5)
|
37 |
+
with col3:
|
38 |
+
done_button = st.button("پردازش دادگان")
|
39 |
+
if done_button:
|
40 |
+
# print('colssssssssssssss ', cols)
|
41 |
+
# Concatenate selected text columns
|
42 |
+
df = df[cols]
|
43 |
+
df = df.head(int(len(df) * (ratio/100)))
|
44 |
+
df = df.dropna()
|
45 |
+
# text = df.apply(lambda x:' '.join(x), axis=1)
|
46 |
+
|
47 |
+
# Run topic modeling function
|
48 |
+
col1, col2, col3 = st.columns(3)
|
49 |
+
with col2:
|
50 |
+
data_progress = st.spinner('در حال پردازش دادگان')
|
51 |
+
with data_progress:
|
52 |
+
docs = tp_model.add_data(df)
|
53 |
+
st.success('پردازش دادگان با موفقیت به پایان رسید')
|
54 |
+
# print('before docs')
|
55 |
+
with st.spinner('در حال آموزش مدل'):
|
56 |
+
# print('fittttttttttt')
|
57 |
+
tp_model.fit(docs)
|
58 |
+
st.success('آموزش پایان یافت')
|
59 |
+
col1, col2, col3 = st.columns(3)
|
60 |
+
with col3:
|
61 |
+
st.title(" فضای تاپیکها ")
|
62 |
+
st.header("")
|
63 |
+
fig = tp_model.get_vis_topics()
|
64 |
+
st.plotly_chart(
|
65 |
+
fig,
|
66 |
+
use_container_width=True,
|
67 |
+
theme="streamlit", # ✨ Optional, this is already set by default!
|
68 |
+
)
|
69 |
+
col1, col2, col3 = st.columns(3)
|
70 |
+
with col3:
|
71 |
+
st.title(" کلمات هر تاپیک ")
|
72 |
+
st.header("")
|
73 |
+
fig = tp_model.get_barchart()
|
74 |
+
st.plotly_chart(
|
75 |
+
fig,
|
76 |
+
use_container_width=True,
|
77 |
+
theme="streamlit", # ✨ Optional, this is already set by default!
|
78 |
+
)
|
79 |
+
|
80 |
+
|
81 |
+
col1, col2, col3 = st.columns(3)
|
82 |
+
with col3:
|
83 |
+
st.title("لیست تاپیکها")
|
84 |
+
st.header("")
|
85 |
+
topics_info = tp_model.get_topic_info()
|
86 |
+
st.write(topics_info)
|
87 |
+
|
88 |
+
col1, col2, col3 = st.columns(3)
|
89 |
+
with col3:
|
90 |
+
st.title(" ابر کلمات ")
|
91 |
+
st.header("")
|
92 |
+
# # figs = tp_model.get_wordcloud()
|
93 |
+
# topic_counts = len(tp_model.topic_model.get_topic_info())
|
94 |
+
# print('topic count ', topic_counts)
|
95 |
+
# if topic_counts > 15:
|
96 |
+
# topic_counts = 15
|
97 |
+
# for topic_index in range(topic_counts):
|
98 |
+
# fig = tp_model.get_wordcloud_by_topic(topic_index)
|
99 |
+
# if fig:
|
100 |
+
figs = tp_model.get_wordcloud()
|
101 |
+
for fig in figs:
|
102 |
+
st.header("")
|
103 |
+
st.markdown('topic:')
|
104 |
+
# st.title(f'topic:{topic_index}')
|
105 |
+
st.pyplot(fig)
|
106 |
+
|
107 |
+
|
108 |
+
|
109 |
+
|
110 |
+
|
111 |
+
|
assets/shahrara_stopwords.txt
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
ادامه
|
2 |
+
باقی
|
3 |
+
بقیه
|
4 |
+
موضوع
|
5 |
+
مسئله
|
6 |
+
مسائل
|
7 |
+
مهم
|
8 |
+
اهمیت
|
9 |
+
علاوه
|
10 |
+
ماه
|
11 |
+
بیان
|
12 |
+
سال
|
13 |
+
روز
|
14 |
+
شهر
|
15 |
+
لازم
|
16 |
+
ضروری
|
17 |
+
باید
|
18 |
+
عموم
|
19 |
+
همگی
|
20 |
+
همه
|
21 |
+
موارد
|
22 |
+
مورد
|
23 |
+
زاده
|
24 |
+
بزرگ
|
25 |
+
بزرگتر
|
26 |
+
کوچکتر
|
27 |
+
بزرگتر
|
28 |
+
کوچکتر
|
29 |
+
کوچک
|
assets/stopwords.txt
ADDED
@@ -0,0 +1,1390 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
!
|
2 |
+
"
|
3 |
+
#
|
4 |
+
(
|
5 |
+
)
|
6 |
+
*
|
7 |
+
,
|
8 |
+
-
|
9 |
+
.
|
10 |
+
/
|
11 |
+
:
|
12 |
+
[
|
13 |
+
]
|
14 |
+
«
|
15 |
+
»
|
16 |
+
،
|
17 |
+
؛
|
18 |
+
می
|
19 |
+
ترین
|
20 |
+
مهم
|
21 |
+
انجام
|
22 |
+
مسئله
|
23 |
+
ترینها
|
24 |
+
ترینهای
|
25 |
+
ترینها
|
26 |
+
تر
|
27 |
+
هاي
|
28 |
+
هايی
|
29 |
+
هايي
|
30 |
+
ي
|
31 |
+
ص
|
32 |
+
ع
|
33 |
+
ها
|
34 |
+
های
|
35 |
+
هایی
|
36 |
+
هایشان
|
37 |
+
؟
|
38 |
+
آباد
|
39 |
+
آخ
|
40 |
+
آخر
|
41 |
+
آخرها
|
42 |
+
آخه
|
43 |
+
آدمهاست
|
44 |
+
آرام
|
45 |
+
آرام آرام
|
46 |
+
آره
|
47 |
+
آری
|
48 |
+
آزادانه
|
49 |
+
آسان
|
50 |
+
آسیب پذیرند
|
51 |
+
آشنایند
|
52 |
+
آشکارا
|
53 |
+
آقا
|
54 |
+
آقای
|
55 |
+
آقایان
|
56 |
+
آمد
|
57 |
+
آمدن
|
58 |
+
آمده
|
59 |
+
آمرانه
|
60 |
+
آن
|
61 |
+
آن گاه
|
62 |
+
آنان
|
63 |
+
آنانی
|
64 |
+
آنجا
|
65 |
+
آنرا
|
66 |
+
آنطور
|
67 |
+
آنقدر
|
68 |
+
آنها
|
69 |
+
آنهاست
|
70 |
+
آنچنان
|
71 |
+
آنچنان که
|
72 |
+
اونجور
|
73 |
+
اونجوری
|
74 |
+
اونجوری که
|
75 |
+
آنچه
|
76 |
+
آنکه
|
77 |
+
آنگاه
|
78 |
+
آنها
|
79 |
+
آهان
|
80 |
+
آهای
|
81 |
+
آور
|
82 |
+
آورد
|
83 |
+
آوردن
|
84 |
+
آورده
|
85 |
+
آوه
|
86 |
+
آی
|
87 |
+
آیا
|
88 |
+
آید
|
89 |
+
آیند
|
90 |
+
ا
|
91 |
+
اتفاقا
|
92 |
+
اثرِ
|
93 |
+
اجراست
|
94 |
+
احتراما
|
95 |
+
احتمالا
|
96 |
+
احیاناً
|
97 |
+
اخیر
|
98 |
+
اخیراً
|
99 |
+
اری
|
100 |
+
از
|
101 |
+
از آن پس
|
102 |
+
از بس که
|
103 |
+
از جمله
|
104 |
+
ازاین رو
|
105 |
+
ازجمله
|
106 |
+
ازش
|
107 |
+
اساسا
|
108 |
+
اساساً
|
109 |
+
است
|
110 |
+
استفاد
|
111 |
+
استفاده
|
112 |
+
اسلامی اند
|
113 |
+
اش
|
114 |
+
اشتباها
|
115 |
+
اشکارا
|
116 |
+
اصلا
|
117 |
+
اصلاً
|
118 |
+
اصولا
|
119 |
+
اصولاً
|
120 |
+
اعلام
|
121 |
+
اغلب
|
122 |
+
افزود
|
123 |
+
افسوس
|
124 |
+
اقل
|
125 |
+
اقلیت
|
126 |
+
الا
|
127 |
+
الان
|
128 |
+
البته
|
129 |
+
البتّه
|
130 |
+
الهی
|
131 |
+
الی
|
132 |
+
ام
|
133 |
+
اما
|
134 |
+
امروز
|
135 |
+
امروزه
|
136 |
+
امسال
|
137 |
+
امشب
|
138 |
+
امور
|
139 |
+
امیدوارم
|
140 |
+
امیدوارند
|
141 |
+
امیدواریم
|
142 |
+
ان
|
143 |
+
ان شاأالله
|
144 |
+
انشالا
|
145 |
+
انتها
|
146 |
+
انجام
|
147 |
+
اند
|
148 |
+
اندکی
|
149 |
+
انشاالله
|
150 |
+
انصافا
|
151 |
+
انطور
|
152 |
+
انقدر
|
153 |
+
انها
|
154 |
+
انچنان
|
155 |
+
انکه
|
156 |
+
انگار
|
157 |
+
او
|
158 |
+
اوست
|
159 |
+
اول
|
160 |
+
اولا
|
161 |
+
اولاً
|
162 |
+
اولین
|
163 |
+
اون
|
164 |
+
اکثر
|
165 |
+
اکثرا
|
166 |
+
اکثراً
|
167 |
+
اکثریت
|
168 |
+
اکنون
|
169 |
+
اگر
|
170 |
+
اگر چه
|
171 |
+
اگرچه
|
172 |
+
اگه
|
173 |
+
ای
|
174 |
+
ایا
|
175 |
+
اید
|
176 |
+
ایشان
|
177 |
+
ایم
|
178 |
+
این
|
179 |
+
این جوری
|
180 |
+
این قدر
|
181 |
+
این گونه
|
182 |
+
اینان
|
183 |
+
اینجا
|
184 |
+
اینجاست
|
185 |
+
ایند
|
186 |
+
اینطور
|
187 |
+
اینقدر
|
188 |
+
اینها
|
189 |
+
اینهاست
|
190 |
+
اینو
|
191 |
+
اینچنین
|
192 |
+
اینک
|
193 |
+
اینکه
|
194 |
+
اینگونه
|
195 |
+
ب
|
196 |
+
با
|
197 |
+
بااین حال
|
198 |
+
بااین وجود
|
199 |
+
باد
|
200 |
+
بار
|
201 |
+
بارة
|
202 |
+
باره
|
203 |
+
بارها
|
204 |
+
باز
|
205 |
+
باز هم
|
206 |
+
بازهم
|
207 |
+
بازی کنان
|
208 |
+
بازیگوشانه
|
209 |
+
باش
|
210 |
+
باشد
|
211 |
+
باشم
|
212 |
+
باشند
|
213 |
+
باشی
|
214 |
+
باشید
|
215 |
+
باشیم
|
216 |
+
بالا
|
217 |
+
بالاخره
|
218 |
+
بالاخص
|
219 |
+
بالاست
|
220 |
+
بالای
|
221 |
+
بالایِ
|
222 |
+
بالطبع
|
223 |
+
بالعکس
|
224 |
+
باوجودی که
|
225 |
+
باورند
|
226 |
+
باید
|
227 |
+
بتدریج
|
228 |
+
بتوان
|
229 |
+
بتواند
|
230 |
+
بتوانی
|
231 |
+
بتوانیم
|
232 |
+
بجز
|
233 |
+
بخش
|
234 |
+
بخشه
|
235 |
+
بخشی
|
236 |
+
بخصوص
|
237 |
+
بخواه
|
238 |
+
بخواهد
|
239 |
+
بخواهم
|
240 |
+
بخواهند
|
241 |
+
بخواهی
|
242 |
+
بخواهید
|
243 |
+
بخواهیم
|
244 |
+
بخوبی
|
245 |
+
بد
|
246 |
+
بدان
|
247 |
+
بدانجا
|
248 |
+
بدانها
|
249 |
+
بدهید
|
250 |
+
بدون
|
251 |
+
بدین
|
252 |
+
بدین ترتیب
|
253 |
+
بدینجا
|
254 |
+
بر
|
255 |
+
برآنند
|
256 |
+
برا
|
257 |
+
برابر
|
258 |
+
برابرِ
|
259 |
+
براحتی
|
260 |
+
براساس
|
261 |
+
براستی
|
262 |
+
برای
|
263 |
+
برایت
|
264 |
+
برایش
|
265 |
+
برایشان
|
266 |
+
برایم
|
267 |
+
برایمان
|
268 |
+
برایِ
|
269 |
+
برخوردار
|
270 |
+
برخوردارند
|
271 |
+
برخی
|
272 |
+
برداری
|
273 |
+
برعکس
|
274 |
+
برنامه سازهاست
|
275 |
+
بروز
|
276 |
+
بروشنی
|
277 |
+
بزرگ
|
278 |
+
بزودی
|
279 |
+
بس
|
280 |
+
بسا
|
281 |
+
بسادگی
|
282 |
+
بسختی
|
283 |
+
بسوی
|
284 |
+
بسی
|
285 |
+
بسیار
|
286 |
+
بسیاری
|
287 |
+
بشدت
|
288 |
+
بطور
|
289 |
+
بطوری که
|
290 |
+
بعد
|
291 |
+
بعد از این که
|
292 |
+
بعدا
|
293 |
+
بعدازظهر
|
294 |
+
بعداً
|
295 |
+
بعدها
|
296 |
+
بعری
|
297 |
+
بعضا
|
298 |
+
بعضی
|
299 |
+
بعضی شان
|
300 |
+
بعضیهایشان
|
301 |
+
بعضیها
|
302 |
+
بعلاوه
|
303 |
+
بعید
|
304 |
+
بفهمی نفهمی
|
305 |
+
بلافاصله
|
306 |
+
بله
|
307 |
+
بلکه
|
308 |
+
بلی
|
309 |
+
بماند
|
310 |
+
بنابراین
|
311 |
+
بندی
|
312 |
+
به
|
313 |
+
به آسانی
|
314 |
+
به تازگی
|
315 |
+
به تدریج
|
316 |
+
به تمامی
|
317 |
+
به جای
|
318 |
+
به جز
|
319 |
+
به خوبی
|
320 |
+
به درشتی
|
321 |
+
به دلخواه
|
322 |
+
به راستی
|
323 |
+
به رغم
|
324 |
+
به روشنی
|
325 |
+
به زودی
|
326 |
+
به سادگی
|
327 |
+
به سرعت
|
328 |
+
به شان
|
329 |
+
به شدت
|
330 |
+
به طور کلی
|
331 |
+
به طوری که
|
332 |
+
به علاوه
|
333 |
+
به قدری
|
334 |
+
به مراتب
|
335 |
+
به ناچار
|
336 |
+
به هرحال
|
337 |
+
به هیچ وجه
|
338 |
+
به وضوح
|
339 |
+
به ویژه
|
340 |
+
به کرات
|
341 |
+
به گرمی
|
342 |
+
بهت
|
343 |
+
بهتر
|
344 |
+
بهترین
|
345 |
+
بهش
|
346 |
+
بود
|
347 |
+
بودم
|
348 |
+
بودن
|
349 |
+
بودند
|
350 |
+
بوده
|
351 |
+
بودی
|
352 |
+
بودید
|
353 |
+
بودیم
|
354 |
+
بویژه
|
355 |
+
بپا
|
356 |
+
بکار
|
357 |
+
بکن
|
358 |
+
بکند
|
359 |
+
بکنم
|
360 |
+
بکنند
|
361 |
+
بکنی
|
362 |
+
بکنید
|
363 |
+
بکنیم
|
364 |
+
بگذاریم
|
365 |
+
بگو
|
366 |
+
بگوید
|
367 |
+
بگویم
|
368 |
+
بگویند
|
369 |
+
بگویی
|
370 |
+
بگویید
|
371 |
+
بگوییم
|
372 |
+
بگیر
|
373 |
+
بگیرد
|
374 |
+
بگیرم
|
375 |
+
بگیرند
|
376 |
+
بگیری
|
377 |
+
بگیرید
|
378 |
+
بگیریم
|
379 |
+
بی
|
380 |
+
بی آنکه
|
381 |
+
بی اطلاعند
|
382 |
+
بی تردید
|
383 |
+
بی تفاوتند
|
384 |
+
بی نیازمندانه
|
385 |
+
بی هدف
|
386 |
+
بیا
|
387 |
+
بیاب
|
388 |
+
بیابد
|
389 |
+
بیابم
|
390 |
+
بیابند
|
391 |
+
بیابی
|
392 |
+
بیابید
|
393 |
+
بیابیم
|
394 |
+
بیاور
|
395 |
+
بیاورد
|
396 |
+
بیاورم
|
397 |
+
بیاورند
|
398 |
+
بیاوری
|
399 |
+
بیاورید
|
400 |
+
بیاوریم
|
401 |
+
بیاید
|
402 |
+
بیایم
|
403 |
+
بیایند
|
404 |
+
بیایی
|
405 |
+
بیایید
|
406 |
+
بیاییم
|
407 |
+
بیرون
|
408 |
+
بیرونِ
|
409 |
+
بیست
|
410 |
+
بیش
|
411 |
+
بیشتر
|
412 |
+
بیشتری
|
413 |
+
بین
|
414 |
+
بیگمان
|
415 |
+
ت
|
416 |
+
تا
|
417 |
+
تازه
|
418 |
+
تان
|
419 |
+
تاکنون
|
420 |
+
تحت
|
421 |
+
تحریم هاست
|
422 |
+
تر
|
423 |
+
تر براساس
|
424 |
+
تریلیارد
|
425 |
+
تریلیون
|
426 |
+
ترین
|
427 |
+
تصریحاً
|
428 |
+
تعدادی
|
429 |
+
تعمدا
|
430 |
+
تقریبا
|
431 |
+
تقریباً
|
432 |
+
تلویحا
|
433 |
+
تلویحاً
|
434 |
+
تمام
|
435 |
+
تمام قد
|
436 |
+
تماما
|
437 |
+
تمامشان
|
438 |
+
تمامی
|
439 |
+
تند تند
|
440 |
+
تنها
|
441 |
+
تو
|
442 |
+
توؤماً
|
443 |
+
توان
|
444 |
+
تواند
|
445 |
+
توانست
|
446 |
+
توانستم
|
447 |
+
توانستن
|
448 |
+
توانستند
|
449 |
+
توانسته
|
450 |
+
توانستی
|
451 |
+
توانستیم
|
452 |
+
توانم
|
453 |
+
توانند
|
454 |
+
توانی
|
455 |
+
توانید
|
456 |
+
توانیم
|
457 |
+
توسط
|
458 |
+
تولِ
|
459 |
+
توی
|
460 |
+
تویِ
|
461 |
+
تک تک
|
462 |
+
ث
|
463 |
+
ثالثاً
|
464 |
+
ثانیا
|
465 |
+
ثانیاً
|
466 |
+
ج
|
467 |
+
جا
|
468 |
+
جای
|
469 |
+
جایی
|
470 |
+
جدا
|
471 |
+
جداً
|
472 |
+
جداگانه
|
473 |
+
جدید
|
474 |
+
جدیدا
|
475 |
+
جرمزاست
|
476 |
+
جریان
|
477 |
+
جز
|
478 |
+
جلو
|
479 |
+
جلوگیری
|
480 |
+
جلوی
|
481 |
+
جلویِ
|
482 |
+
جمع اند
|
483 |
+
جمعا
|
484 |
+
جمعی
|
485 |
+
جنابعالی
|
486 |
+
جناح
|
487 |
+
جنس اند
|
488 |
+
جهت
|
489 |
+
جور
|
490 |
+
ح
|
491 |
+
حاشیهای
|
492 |
+
حاضر
|
493 |
+
حاضرم
|
494 |
+
حال
|
495 |
+
حالا
|
496 |
+
حاکیست
|
497 |
+
حتما
|
498 |
+
حتماً
|
499 |
+
حتی
|
500 |
+
حداقل
|
501 |
+
حداکثر
|
502 |
+
حدود
|
503 |
+
حدودا
|
504 |
+
حدودِ
|
505 |
+
حسابگرانه
|
506 |
+
حضرتعالی
|
507 |
+
حق
|
508 |
+
حقیرانه
|
509 |
+
حقیقتا
|
510 |
+
حول
|
511 |
+
حکماً
|
512 |
+
خ
|
513 |
+
خارجِ
|
514 |
+
خالصانه
|
515 |
+
خب
|
516 |
+
خداحافظ
|
517 |
+
خداست
|
518 |
+
خدمات
|
519 |
+
خستهای
|
520 |
+
خصوصا
|
521 |
+
خصوصاً
|
522 |
+
خلاصه
|
523 |
+
خواست
|
524 |
+
خواستم
|
525 |
+
خواستن
|
526 |
+
خواستند
|
527 |
+
خواسته
|
528 |
+
خواستی
|
529 |
+
خواستید
|
530 |
+
خواستیم
|
531 |
+
خواه
|
532 |
+
خواهد
|
533 |
+
خواهم
|
534 |
+
خواهند
|
535 |
+
خواهی
|
536 |
+
خواهید
|
537 |
+
خواهیم
|
538 |
+
خوب
|
539 |
+
خود
|
540 |
+
خود به خود
|
541 |
+
خودبه خودی
|
542 |
+
خودت
|
543 |
+
خودتان
|
544 |
+
خودتو
|
545 |
+
خودش
|
546 |
+
خودشان
|
547 |
+
خودم
|
548 |
+
خودمان
|
549 |
+
خودمو
|
550 |
+
خوش
|
551 |
+
خوشبختانه
|
552 |
+
خویش
|
553 |
+
خویشتن
|
554 |
+
خویشتنم
|
555 |
+
خیاه
|
556 |
+
خیر
|
557 |
+
خیره
|
558 |
+
خیلی
|
559 |
+
د
|
560 |
+
دا
|
561 |
+
داام
|
562 |
+
دااما
|
563 |
+
داخل
|
564 |
+
داد
|
565 |
+
دادم
|
566 |
+
دادن
|
567 |
+
دادند
|
568 |
+
داده
|
569 |
+
دادی
|
570 |
+
دادید
|
571 |
+
دادیم
|
572 |
+
دار
|
573 |
+
داراست
|
574 |
+
دارد
|
575 |
+
دارم
|
576 |
+
دارند
|
577 |
+
داری
|
578 |
+
دارید
|
579 |
+
داریم
|
580 |
+
داشت
|
581 |
+
داشتم
|
582 |
+
داشتن
|
583 |
+
داشتند
|
584 |
+
داشته
|
585 |
+
داشتی
|
586 |
+
داشتید
|
587 |
+
داشتیم
|
588 |
+
دامم
|
589 |
+
دانست
|
590 |
+
دانند
|
591 |
+
دایم
|
592 |
+
دایما
|
593 |
+
در
|
594 |
+
در باره
|
595 |
+
در بارهٌ
|
596 |
+
در ثانی
|
597 |
+
در مجموع
|
598 |
+
در نهایت
|
599 |
+
در واقع
|
600 |
+
در کل
|
601 |
+
در کنار
|
602 |
+
دراین میان
|
603 |
+
درباره
|
604 |
+
درحالی که
|
605 |
+
درحالیکه
|
606 |
+
درست
|
607 |
+
درست و حسابی
|
608 |
+
درسته
|
609 |
+
درصورتی که
|
610 |
+
درعین حال
|
611 |
+
درمجموع
|
612 |
+
درواقع
|
613 |
+
درون
|
614 |
+
دریغ
|
615 |
+
دریغا
|
616 |
+
درین
|
617 |
+
دسته دسته
|
618 |
+
دشمنیم
|
619 |
+
دقیقا
|
620 |
+
دم
|
621 |
+
دنبالِ
|
622 |
+
ده
|
623 |
+
دهد
|
624 |
+
دهم
|
625 |
+
دهند
|
626 |
+
دهی
|
627 |
+
دهید
|
628 |
+
دهیم
|
629 |
+
دو
|
630 |
+
دو روزه
|
631 |
+
دوباره
|
632 |
+
دوم
|
633 |
+
دیده
|
634 |
+
دیر
|
635 |
+
دیرت
|
636 |
+
دیرم
|
637 |
+
دیروز
|
638 |
+
دیشب
|
639 |
+
دیوانهای
|
640 |
+
دیوی
|
641 |
+
دیگر
|
642 |
+
دیگران
|
643 |
+
دیگری
|
644 |
+
دیگه
|
645 |
+
ذ
|
646 |
+
ذاتاً
|
647 |
+
ر
|
648 |
+
را
|
649 |
+
راجع به
|
650 |
+
راحت
|
651 |
+
راسا
|
652 |
+
راست
|
653 |
+
راستی
|
654 |
+
راه
|
655 |
+
رسما
|
656 |
+
رسید
|
657 |
+
رسیده
|
658 |
+
رشته
|
659 |
+
رفت
|
660 |
+
رفتارهاست
|
661 |
+
رفته
|
662 |
+
رنجند
|
663 |
+
رهگشاست
|
664 |
+
رو
|
665 |
+
رواست
|
666 |
+
روب
|
667 |
+
روبروست
|
668 |
+
روز
|
669 |
+
روز به روز
|
670 |
+
روزانه
|
671 |
+
روزه ایم
|
672 |
+
روزه ست
|
673 |
+
روزه م
|
674 |
+
روزهای
|
675 |
+
روزهای
|
676 |
+
روش
|
677 |
+
روی
|
678 |
+
رویش
|
679 |
+
رویِ
|
680 |
+
ریزی
|
681 |
+
ز
|
682 |
+
زشتکارانند
|
683 |
+
زمان
|
684 |
+
زمانی
|
685 |
+
زمینه
|
686 |
+
زنند
|
687 |
+
زهی
|
688 |
+
زود
|
689 |
+
زودتر
|
690 |
+
زیاد
|
691 |
+
زیاده
|
692 |
+
زیر
|
693 |
+
زیرا
|
694 |
+
زیرِ
|
695 |
+
زیرچشمی
|
696 |
+
س
|
697 |
+
سابق
|
698 |
+
ساخته
|
699 |
+
ساده اند
|
700 |
+
سازی
|
701 |
+
سالانه
|
702 |
+
سالته
|
703 |
+
سالمتر
|
704 |
+
سالهاست
|
705 |
+
سالیانه
|
706 |
+
ساکنند
|
707 |
+
سایر
|
708 |
+
سخت
|
709 |
+
سخته
|
710 |
+
سر
|
711 |
+
سراسر
|
712 |
+
سرانجام
|
713 |
+
سراپا
|
714 |
+
سری
|
715 |
+
سریع
|
716 |
+
سریعا
|
717 |
+
سریعاً
|
718 |
+
سریِ
|
719 |
+
سعی
|
720 |
+
سمتِ
|
721 |
+
سه باره
|
722 |
+
سهواً
|
723 |
+
سوم
|
724 |
+
سوی
|
725 |
+
سویِ
|
726 |
+
سپس
|
727 |
+
سیاه چاله هاست
|
728 |
+
سیخ
|
729 |
+
ش
|
730 |
+
شان
|
731 |
+
شاهدند
|
732 |
+
شاهدیم
|
733 |
+
شاید
|
734 |
+
شبهاست
|
735 |
+
شخصا
|
736 |
+
شخصاً
|
737 |
+
شد
|
738 |
+
شدم
|
739 |
+
شدن
|
740 |
+
شدند
|
741 |
+
شده
|
742 |
+
شدی
|
743 |
+
شدید
|
744 |
+
شدیدا
|
745 |
+
شدیداً
|
746 |
+
شدیم
|
747 |
+
شش
|
748 |
+
شش نداشته
|
749 |
+
شما
|
750 |
+
شماری
|
751 |
+
شماست
|
752 |
+
شمایند
|
753 |
+
شناسی
|
754 |
+
شو
|
755 |
+
شود
|
756 |
+
شوراست
|
757 |
+
شوقم
|
758 |
+
شوم
|
759 |
+
شوند
|
760 |
+
شونده
|
761 |
+
شوی
|
762 |
+
شوید
|
763 |
+
شویم
|
764 |
+
شیرین
|
765 |
+
شیرینه
|
766 |
+
شیک
|
767 |
+
ص
|
768 |
+
صد
|
769 |
+
صددرصد
|
770 |
+
صرفا
|
771 |
+
صرفاً
|
772 |
+
صریحاً
|
773 |
+
صندوق هاست
|
774 |
+
صورت
|
775 |
+
ض
|
776 |
+
ضدِّ
|
777 |
+
ضدِّ
|
778 |
+
ضمن
|
779 |
+
ضمناً
|
780 |
+
ط
|
781 |
+
طبعا
|
782 |
+
طبعاً
|
783 |
+
طبقِ
|
784 |
+
طبیعتا
|
785 |
+
طرف
|
786 |
+
طریق
|
787 |
+
طلبکارانه
|
788 |
+
طور
|
789 |
+
طی
|
790 |
+
ظ
|
791 |
+
ظاهرا
|
792 |
+
ظاهراً
|
793 |
+
ع
|
794 |
+
عاجزانه
|
795 |
+
عاقبت
|
796 |
+
عبارتند
|
797 |
+
عجب
|
798 |
+
عجولانه
|
799 |
+
عدم
|
800 |
+
عرفانی
|
801 |
+
عقب
|
802 |
+
عقبِ
|
803 |
+
علاوه بر
|
804 |
+
علاوه بر آن
|
805 |
+
علاوه برآن
|
806 |
+
علناً
|
807 |
+
علّتِ
|
808 |
+
علی الظاهر
|
809 |
+
علی رغم
|
810 |
+
علیرغم
|
811 |
+
علیه
|
812 |
+
عمدا
|
813 |
+
عمداً
|
814 |
+
عمدتا
|
815 |
+
عمدتاً
|
816 |
+
عمده
|
817 |
+
عمل
|
818 |
+
عملا
|
819 |
+
عملاً
|
820 |
+
عملی اند
|
821 |
+
عموم
|
822 |
+
عموما
|
823 |
+
عموماً
|
824 |
+
عنقریب
|
825 |
+
عنوان
|
826 |
+
عنوانِ
|
827 |
+
عیناً
|
828 |
+
غ
|
829 |
+
غالبا
|
830 |
+
غزالان
|
831 |
+
غیر
|
832 |
+
غیرقانونی
|
833 |
+
ف
|
834 |
+
فاقد
|
835 |
+
فبها
|
836 |
+
فر
|
837 |
+
فردا
|
838 |
+
فعلا
|
839 |
+
فعلاً
|
840 |
+
فقط
|
841 |
+
فلان
|
842 |
+
فلذا
|
843 |
+
فوق
|
844 |
+
فکر
|
845 |
+
ق
|
846 |
+
قاالند
|
847 |
+
قابل
|
848 |
+
قاطبه
|
849 |
+
قاطعانه
|
850 |
+
قاعدتاً
|
851 |
+
قانوناً
|
852 |
+
قبل
|
853 |
+
قبلا
|
854 |
+
قبلاً
|
855 |
+
قبلند
|
856 |
+
قدر
|
857 |
+
قدری
|
858 |
+
قصدِ
|
859 |
+
قضایاست
|
860 |
+
قطعا
|
861 |
+
قطعاً
|
862 |
+
ل
|
863 |
+
لااقل
|
864 |
+
لاجرم
|
865 |
+
لب
|
866 |
+
لذا
|
867 |
+
لزوماً
|
868 |
+
لطفا
|
869 |
+
لطفاً
|
870 |
+
لیکن
|
871 |
+
م
|
872 |
+
ما
|
873 |
+
مادامی
|
874 |
+
ماست
|
875 |
+
مامان مامان گویان
|
876 |
+
مان
|
877 |
+
مانند
|
878 |
+
مانندِ
|
879 |
+
مبادا
|
880 |
+
متؤسفانه
|
881 |
+
متاسفانه
|
882 |
+
متعاقبا
|
883 |
+
متفاوتند
|
884 |
+
مثل
|
885 |
+
مثلا
|
886 |
+
مثلِ
|
887 |
+
مجانی
|
888 |
+
مجبورند
|
889 |
+
مجددا
|
890 |
+
مجدداً
|
891 |
+
مجموعا
|
892 |
+
مجموعاً
|
893 |
+
محتاجند
|
894 |
+
محکم
|
895 |
+
محکمتر
|
896 |
+
مخالفند
|
897 |
+
مختلف
|
898 |
+
مخصوصاً
|
899 |
+
مدام
|
900 |
+
مدت
|
901 |
+
مدتهاست
|
902 |
+
مدّتی
|
903 |
+
مذهبی اند
|
904 |
+
مرا
|
905 |
+
مرتب
|
906 |
+
مردانه
|
907 |
+
مردم
|
908 |
+
مردم اند
|
909 |
+
مرسی
|
910 |
+
مستحضرید
|
911 |
+
مستقیما
|
912 |
+
مستند
|
913 |
+
مسلما
|
914 |
+
مشت
|
915 |
+
مشترکاً
|
916 |
+
مشغولند
|
917 |
+
مطمانا
|
918 |
+
مطمانم
|
919 |
+
مطمینا
|
920 |
+
مع الاسف
|
921 |
+
مع ذلک
|
922 |
+
معتقدم
|
923 |
+
معتقدند
|
924 |
+
معتقدیم
|
925 |
+
معدود
|
926 |
+
معذوریم
|
927 |
+
معلومه
|
928 |
+
معمولا
|
929 |
+
معمولاً
|
930 |
+
معمولی
|
931 |
+
مغرضانه
|
932 |
+
مفیدند
|
933 |
+
مقابل
|
934 |
+
مقدار
|
935 |
+
مقصرند
|
936 |
+
مقصری
|
937 |
+
ملیارد
|
938 |
+
ملیون
|
939 |
+
ممکن
|
940 |
+
ممیزیهاست
|
941 |
+
من
|
942 |
+
منتهی
|
943 |
+
منطقی
|
944 |
+
منی
|
945 |
+
مواجهند
|
946 |
+
موارد
|
947 |
+
موجودند
|
948 |
+
مورد
|
949 |
+
موقتا
|
950 |
+
مکرر
|
951 |
+
مکرراً
|
952 |
+
مگر
|
953 |
+
مگر آن که
|
954 |
+
مگر این که
|
955 |
+
مگو
|
956 |
+
می
|
957 |
+
میان
|
958 |
+
میزان
|
959 |
+
میلیارد
|
960 |
+
میلیون
|
961 |
+
میکند
|
962 |
+
میکنم
|
963 |
+
میکنند
|
964 |
+
میکنی
|
965 |
+
میکنید
|
966 |
+
میکنیم
|
967 |
+
میتواند
|
968 |
+
میخواهیم
|
969 |
+
میداند
|
970 |
+
میرسد
|
971 |
+
میرود
|
972 |
+
میشود
|
973 |
+
میکنم
|
974 |
+
میکنند
|
975 |
+
میکنیم
|
976 |
+
ن
|
977 |
+
ناامید
|
978 |
+
ناخواسته
|
979 |
+
ناراضی اند
|
980 |
+
ناشی
|
981 |
+
نام
|
982 |
+
ناگاه
|
983 |
+
ناگزیر
|
984 |
+
ناگهان
|
985 |
+
ناگهانی
|
986 |
+
نباید
|
987 |
+
نبش
|
988 |
+
نبود
|
989 |
+
نخست
|
990 |
+
نخستین
|
991 |
+
نخواهد
|
992 |
+
نخواهم
|
993 |
+
نخواهند
|
994 |
+
نخواهی
|
995 |
+
نخواهید
|
996 |
+
نخواهیم
|
997 |
+
نخودی
|
998 |
+
ندارد
|
999 |
+
ندارم
|
1000 |
+
ندارند
|
1001 |
+
نداری
|
1002 |
+
ندارید
|
1003 |
+
نداریم
|
1004 |
+
نداشت
|
1005 |
+
نداشتم
|
1006 |
+
نداشتند
|
1007 |
+
نداشته
|
1008 |
+
نداشتی
|
1009 |
+
نداشتید
|
1010 |
+
نداشتیم
|
1011 |
+
نزد
|
1012 |
+
نزدِ
|
1013 |
+
نزدیک
|
1014 |
+
نزدیکِ
|
1015 |
+
نسبتا
|
1016 |
+
نشان
|
1017 |
+
نشده
|
1018 |
+
نظیر
|
1019 |
+
نفرند
|
1020 |
+
نماید
|
1021 |
+
نموده
|
1022 |
+
نمی
|
1023 |
+
نمیشود
|
1024 |
+
نمیکند
|
1025 |
+
نه
|
1026 |
+
نه تنها
|
1027 |
+
نهایتا
|
1028 |
+
نهایتاً
|
1029 |
+
نوع
|
1030 |
+
نوعاً
|
1031 |
+
نوعی
|
1032 |
+
نکرده
|
1033 |
+
نکن
|
1034 |
+
نکند
|
1035 |
+
نکنم
|
1036 |
+
نکنند
|
1037 |
+
نکنی
|
1038 |
+
نکنید
|
1039 |
+
نکنیم
|
1040 |
+
نگاه
|
1041 |
+
نگو
|
1042 |
+
نیازمندند
|
1043 |
+
نیز
|
1044 |
+
نیست
|
1045 |
+
نیستم
|
1046 |
+
نیستند
|
1047 |
+
نیستیم
|
1048 |
+
نیمی
|
1049 |
+
ه
|
1050 |
+
ها
|
1051 |
+
های
|
1052 |
+
هایی
|
1053 |
+
هبچ
|
1054 |
+
هر
|
1055 |
+
هر از گاهی
|
1056 |
+
هر چند
|
1057 |
+
هر چند که
|
1058 |
+
هر چه
|
1059 |
+
هرچند
|
1060 |
+
هرچه
|
1061 |
+
هرکس
|
1062 |
+
هرگاه
|
1063 |
+
هرگز
|
1064 |
+
هزار
|
1065 |
+
هست
|
1066 |
+
هستم
|
1067 |
+
هستند
|
1068 |
+
هستی
|
1069 |
+
هستید
|
1070 |
+
هستیم
|
1071 |
+
هفت
|
1072 |
+
هق هق کنان
|
1073 |
+
هم
|
1074 |
+
هم اکنون
|
1075 |
+
هم اینک
|
1076 |
+
همان
|
1077 |
+
همان طور که
|
1078 |
+
همان گونه که
|
1079 |
+
همانا
|
1080 |
+
همانند
|
1081 |
+
همانها
|
1082 |
+
همدیگر
|
1083 |
+
همزمان
|
1084 |
+
همه
|
1085 |
+
همه روزه
|
1086 |
+
همه ساله
|
1087 |
+
همه شان
|
1088 |
+
همهٌ
|
1089 |
+
همهاش
|
1090 |
+
همواره
|
1091 |
+
همچنان
|
1092 |
+
همچنان که
|
1093 |
+
همچنین
|
1094 |
+
همچون
|
1095 |
+
همچین
|
1096 |
+
همگان
|
1097 |
+
همگی
|
1098 |
+
همیشه
|
1099 |
+
همین
|
1100 |
+
همین که
|
1101 |
+
هنوز
|
1102 |
+
هنگام
|
1103 |
+
هنگامِ
|
1104 |
+
هنگامی
|
1105 |
+
هنگامی که
|
1106 |
+
هوی
|
1107 |
+
هی
|
1108 |
+
هیچ
|
1109 |
+
هیچ گاه
|
1110 |
+
هیچکدام
|
1111 |
+
هیچکس
|
1112 |
+
هیچگاه
|
1113 |
+
هیچگونه
|
1114 |
+
هیچی
|
1115 |
+
و
|
1116 |
+
و لا غیر
|
1117 |
+
وابسته اند
|
1118 |
+
واقعا
|
1119 |
+
واقعاً
|
1120 |
+
واقعی
|
1121 |
+
واقفند
|
1122 |
+
واما
|
1123 |
+
وای
|
1124 |
+
وجود
|
1125 |
+
وحشت زده
|
1126 |
+
وسطِ
|
1127 |
+
وضع
|
1128 |
+
وقتی
|
1129 |
+
وقتی که
|
1130 |
+
وقتیکه
|
1131 |
+
ولی
|
1132 |
+
وگرنه
|
1133 |
+
وگو
|
1134 |
+
وی
|
1135 |
+
ویا
|
1136 |
+
ویژه
|
1137 |
+
ّه
|
1138 |
+
٪
|
1139 |
+
پ
|
1140 |
+
پارسال
|
1141 |
+
پارسایانه
|
1142 |
+
پارهای
|
1143 |
+
پاعینِ
|
1144 |
+
پایین ترند
|
1145 |
+
پدرانه
|
1146 |
+
پرسان
|
1147 |
+
پروردگارا
|
1148 |
+
پریروز
|
1149 |
+
پس
|
1150 |
+
پس از
|
1151 |
+
پس فردا
|
1152 |
+
پشت
|
1153 |
+
پشتوانه اند
|
1154 |
+
پشیمونی
|
1155 |
+
پنج
|
1156 |
+
پهن شده
|
1157 |
+
پی
|
1158 |
+
پی درپی
|
1159 |
+
پیدا
|
1160 |
+
پیداست
|
1161 |
+
پیرامون
|
1162 |
+
پیش
|
1163 |
+
پیشاپیش
|
1164 |
+
پیشتر
|
1165 |
+
پیشِ
|
1166 |
+
پیوسته
|
1167 |
+
چ
|
1168 |
+
چاپلوسانه
|
1169 |
+
چت
|
1170 |
+
چته
|
1171 |
+
چرا
|
1172 |
+
چرا که
|
1173 |
+
چشم بسته
|
1174 |
+
چطور
|
1175 |
+
چقدر
|
1176 |
+
چنان
|
1177 |
+
چنانچه
|
1178 |
+
چنانکه
|
1179 |
+
چند
|
1180 |
+
چند روزه
|
1181 |
+
چندان
|
1182 |
+
چنده
|
1183 |
+
چندین
|
1184 |
+
چنین
|
1185 |
+
چه
|
1186 |
+
چه بسا
|
1187 |
+
چه طور
|
1188 |
+
چهار
|
1189 |
+
چو
|
1190 |
+
چون
|
1191 |
+
چکار
|
1192 |
+
چگونه
|
1193 |
+
چی
|
1194 |
+
چیز
|
1195 |
+
چیزی
|
1196 |
+
چیزیست
|
1197 |
+
چیست
|
1198 |
+
چیه
|
1199 |
+
ژ
|
1200 |
+
ک
|
1201 |
+
کارند
|
1202 |
+
کاش
|
1203 |
+
کاشکی
|
1204 |
+
کامل
|
1205 |
+
کاملا
|
1206 |
+
کاملاً
|
1207 |
+
کتبا
|
1208 |
+
کجا
|
1209 |
+
کجاست
|
1210 |
+
کدام
|
1211 |
+
کرد
|
1212 |
+
کردم
|
1213 |
+
کردن
|
1214 |
+
کردند
|
1215 |
+
کرده
|
1216 |
+
کردی
|
1217 |
+
کردید
|
1218 |
+
کردیم
|
1219 |
+
کس
|
1220 |
+
کسانی
|
1221 |
+
کسی
|
1222 |
+
کل
|
1223 |
+
کلا
|
1224 |
+
کلی
|
1225 |
+
کلیه
|
1226 |
+
کم
|
1227 |
+
کم کم
|
1228 |
+
کمااینکه
|
1229 |
+
کماکان
|
1230 |
+
کمتر
|
1231 |
+
کمتره
|
1232 |
+
کمتری
|
1233 |
+
کمی
|
1234 |
+
کن
|
1235 |
+
کنار
|
1236 |
+
کنارش
|
1237 |
+
کنارِ
|
1238 |
+
کنایهای
|
1239 |
+
کند
|
1240 |
+
کنم
|
1241 |
+
کنند
|
1242 |
+
کننده
|
1243 |
+
کنون
|
1244 |
+
کنونی
|
1245 |
+
کنی
|
1246 |
+
کنید
|
1247 |
+
کنیم
|
1248 |
+
که
|
1249 |
+
کو
|
1250 |
+
کَی
|
1251 |
+
کی
|
1252 |
+
گ
|
1253 |
+
گاه
|
1254 |
+
گاهی
|
1255 |
+
گذاری
|
1256 |
+
گذاشته
|
1257 |
+
گذشته
|
1258 |
+
گردد
|
1259 |
+
گردند
|
1260 |
+
گرفت
|
1261 |
+
گرفتارند
|
1262 |
+
گرفتم
|
1263 |
+
گرفتن
|
1264 |
+
گرفتند
|
1265 |
+
گرفته
|
1266 |
+
گرفتی
|
1267 |
+
گرفتید
|
1268 |
+
گرفتیم
|
1269 |
+
گروهی
|
1270 |
+
گرچه
|
1271 |
+
گفت
|
1272 |
+
گفتم
|
1273 |
+
گفتن
|
1274 |
+
گفتند
|
1275 |
+
گفته
|
1276 |
+
گفتی
|
1277 |
+
گفتید
|
1278 |
+
گفتیم
|
1279 |
+
گه
|
1280 |
+
گهگاه
|
1281 |
+
گو
|
1282 |
+
گونه
|
1283 |
+
گوی
|
1284 |
+
گویا
|
1285 |
+
گوید
|
1286 |
+
گویم
|
1287 |
+
گویند
|
1288 |
+
گویی
|
1289 |
+
گویید
|
1290 |
+
گوییم
|
1291 |
+
گیر
|
1292 |
+
گیرد
|
1293 |
+
گیرم
|
1294 |
+
گیرند
|
1295 |
+
گیری
|
1296 |
+
گیرید
|
1297 |
+
گیریم
|
1298 |
+
ی
|
1299 |
+
یا
|
1300 |
+
یاب
|
1301 |
+
یابد
|
1302 |
+
یابم
|
1303 |
+
یابند
|
1304 |
+
یابی
|
1305 |
+
یابید
|
1306 |
+
یابیم
|
1307 |
+
یارب
|
1308 |
+
یافت
|
1309 |
+
یافتم
|
1310 |
+
یافتن
|
1311 |
+
یافته
|
1312 |
+
یافتی
|
1313 |
+
یافتید
|
1314 |
+
یافتیم
|
1315 |
+
یعنی
|
1316 |
+
یقینا
|
1317 |
+
یقیناً
|
1318 |
+
یه
|
1319 |
+
یواش یواش
|
1320 |
+
یک
|
1321 |
+
یک جوری
|
1322 |
+
یک کم
|
1323 |
+
یک کمی
|
1324 |
+
یکدیگر
|
1325 |
+
یکریز
|
1326 |
+
یکسال
|
1327 |
+
یکهزار
|
1328 |
+
یکی
|
1329 |
+
۰
|
1330 |
+
۱
|
1331 |
+
۲
|
1332 |
+
۳
|
1333 |
+
۴
|
1334 |
+
۵
|
1335 |
+
۶
|
1336 |
+
۷
|
1337 |
+
۸
|
1338 |
+
۹
|
1339 |
+
…
|
1340 |
+
و
|
1341 |
+
علاقه مند
|
1342 |
+
میخونم
|
1343 |
+
میخوانم
|
1344 |
+
می خوانم
|
1345 |
+
میخونید
|
1346 |
+
میخوانید
|
1347 |
+
می خوانید
|
1348 |
+
در آینده
|
1349 |
+
بشم
|
1350 |
+
بشی
|
1351 |
+
بشید
|
1352 |
+
بشین
|
1353 |
+
یک چیزی
|
1354 |
+
بهتون
|
1355 |
+
اینم
|
1356 |
+
بیفته
|
1357 |
+
محض رضای خدا
|
1358 |
+
هیچوقت
|
1359 |
+
دونستن
|
1360 |
+
میفرستین
|
1361 |
+
میفرستی
|
1362 |
+
میفرستم
|
1363 |
+
عه
|
1364 |
+
هستش
|
1365 |
+
همهمون
|
1366 |
+
همه مون
|
1367 |
+
جدی
|
1368 |
+
بدجور
|
1369 |
+
بد جور
|
1370 |
+
خداروشکر
|
1371 |
+
شی
|
1372 |
+
وجدانا
|
1373 |
+
روم
|
1374 |
+
بگین
|
1375 |
+
هیچ جور
|
1376 |
+
هیچجور
|
1377 |
+
هیچجور
|
1378 |
+
مثل اینکه
|
1379 |
+
دوهزاری
|
1380 |
+
هستا
|
1381 |
+
شون
|
1382 |
+
هامو
|
1383 |
+
هام رو
|
1384 |
+
مارو
|
1385 |
+
ما رو
|
1386 |
+
رو
|
1387 |
+
داره
|
1388 |
+
این دفعه
|
1389 |
+
دفعه
|
1390 |
+
nan
|
docker-compose.yml
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
version: "3.8"
|
2 |
+
|
3 |
+
|
4 |
+
services:
|
5 |
+
kpe:
|
6 |
+
build: .
|
7 |
+
ports:
|
8 |
+
- "7272:7272"
|
9 |
+
|
requirements.txt
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
scikit-learn
|
2 |
+
num2fawords
|
3 |
+
wordcloud-fa
|
4 |
+
streamlit
|
5 |
+
altair==4.2.2
|
6 |
+
bertopic
|
7 |
+
pandas
|
8 |
+
parsinorm
|
9 |
+
matplotlib
|
10 |
+
scipy
|
topic_modeling.py
ADDED
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from bertopic import BERTopic
|
2 |
+
from scipy.cluster import hierarchy as sch
|
3 |
+
from sklearn.feature_extraction.text import CountVectorizer
|
4 |
+
from sklearn.datasets import fetch_20newsgroups
|
5 |
+
from bertopic import BERTopic
|
6 |
+
# from wordcloud import WordCloud
|
7 |
+
import matplotlib.pyplot as plt
|
8 |
+
from wordcloud_fa import WordCloudFa
|
9 |
+
|
10 |
+
import utils
|
11 |
+
|
12 |
+
class TopicModeling:
|
13 |
+
def __init__(self, stopwords_path='./assets/stopwords.txt', specific_stopwords_path='./assets/shahrara_stopwords.txt', embedding_model='paraphrase-multilingual-mpnet-base-v2') -> None:
|
14 |
+
stopwords = open(stopwords_path).read().splitlines()
|
15 |
+
specific_stopwords = open(specific_stopwords_path).read().splitlines()
|
16 |
+
stopwords = stopwords + specific_stopwords
|
17 |
+
vectorizer_model = CountVectorizer(stop_words=stopwords)
|
18 |
+
self.topic_model = BERTopic(embedding_model=embedding_model, vectorizer_model=vectorizer_model, verbose=True)
|
19 |
+
|
20 |
+
|
21 |
+
def add_data(self, df):
|
22 |
+
print('add data')
|
23 |
+
# df = df.dropna()
|
24 |
+
df['FINAL_CONCATED_TEXT_FOR_TOPIC'] = df.apply(lambda x: '. '.join(x), axis=1)
|
25 |
+
df['FINAL_CONCATED_TEXT_FOR_TOPIC'] = df['FINAL_CONCATED_TEXT_FOR_TOPIC'].apply(utils.normalize)
|
26 |
+
docs = list(set(df['FINAL_CONCATED_TEXT_FOR_TOPIC'].tolist()))
|
27 |
+
docs = [d for d in docs if d and type(d) == str and len(d.split())>3]
|
28 |
+
print('len docs ', len(docs))
|
29 |
+
return docs
|
30 |
+
|
31 |
+
|
32 |
+
def fit(self, docs):
|
33 |
+
print('self docs : ', len(docs))
|
34 |
+
print(docs[:5])
|
35 |
+
self.topics, self.probs = self.topic_model.fit_transform(docs)
|
36 |
+
|
37 |
+
def get_barchart(self):
|
38 |
+
return self.topic_model.visualize_barchart()
|
39 |
+
|
40 |
+
|
41 |
+
def get_vis_topics(self):
|
42 |
+
return self.topic_model.visualize_topics()
|
43 |
+
|
44 |
+
|
45 |
+
def get_h_topics(self):
|
46 |
+
linkage_function = lambda x: sch.linkage(x, 'single', optimal_ordering=True)
|
47 |
+
hierarchical_topics = self.topic_model.hierarchical_topics(self.docs, linkage_function=linkage_function)
|
48 |
+
return self.topic_model.visualize_hierarchy(hierarchical_topics=hierarchical_topics)
|
49 |
+
|
50 |
+
def topic_over_tome(self):
|
51 |
+
# # Create topics over time
|
52 |
+
# model = BERTopic(verbose=True)
|
53 |
+
topics_over_time = self.topic_model.topics_over_time(self.docs, self.timestamps, datetime_format="%m-%d")
|
54 |
+
return self.topic_model.visualize_topics_over_time(topics_over_time, top_n_topics=5)
|
55 |
+
|
56 |
+
|
57 |
+
def visualize_documents(self, docs):
|
58 |
+
self.topic_model.visualize_documents(docs, embeddings=embeddings)
|
59 |
+
reduced_embeddings = UMAP(n_neighbors=10, n_components=2, min_dist=0.0, metric='cosine').fit_transform(embeddings)
|
60 |
+
topic_model.visualize_documents(docs, reduced_embeddings=reduced_embeddings)
|
61 |
+
|
62 |
+
|
63 |
+
def get_topic_info(self):
|
64 |
+
return self.topic_model.get_topic_info()
|
65 |
+
|
66 |
+
|
67 |
+
def get_wordcloud(self):
|
68 |
+
all_plts = []
|
69 |
+
topic_counts = len(self.topic_model.get_topic_info())
|
70 |
+
if topic_counts > 30:
|
71 |
+
topic_counts = 30
|
72 |
+
print('topic count ', topic_counts)
|
73 |
+
for topic_index in range(topic_counts):
|
74 |
+
print(topic_index)
|
75 |
+
top_n_words = self.topic_model.get_topic(topic_index)
|
76 |
+
if type(top_n_words) != bool:
|
77 |
+
text = {word: value for word, value in top_n_words}
|
78 |
+
wc = WordCloudFa(background_color="white", max_words=1000, no_reshape=True)
|
79 |
+
wc.generate_from_frequencies(text)
|
80 |
+
plt.imshow(wc, interpolation="bilinear")
|
81 |
+
plt.axis("off")
|
82 |
+
fig = plt.figure()
|
83 |
+
all_plts.append(fig)
|
84 |
+
# plt.show()
|
85 |
+
return all_plts
|
86 |
+
|
87 |
+
def get_wordcloud_by_topic(self, topic_index):
|
88 |
+
top_n_words = self.topic_model.get_topic(topic_index)
|
89 |
+
if type(top_n_words) != bool:
|
90 |
+
text = {word: value for word, value in top_n_words}
|
91 |
+
wc = WordCloudFa(background_color="white", max_words=1000, no_reshape=True)
|
92 |
+
wc.generate_from_frequencies(text)
|
93 |
+
plt.imshow(wc, interpolation="bilinear")
|
94 |
+
plt.axis("off")
|
95 |
+
fig = plt.figure()
|
96 |
+
return fig
|
97 |
+
return None
|
utils.py
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from parsinorm import General_normalization
|
2 |
+
|
3 |
+
#normalize
|
4 |
+
def normalize(txt):
|
5 |
+
general_normalization = General_normalization()
|
6 |
+
txt = general_normalization.alphabet_correction(txt)
|
7 |
+
txt = general_normalization.semi_space_correction(txt)
|
8 |
+
txt = general_normalization.english_correction(txt)
|
9 |
+
txt = general_normalization.html_correction(txt)
|
10 |
+
txt = general_normalization.arabic_correction(txt)
|
11 |
+
txt = general_normalization.punctuation_correction(txt)
|
12 |
+
txt = general_normalization.specials_chars(txt)
|
13 |
+
txt = general_normalization.remove_emojis(txt)
|
14 |
+
txt = general_normalization.number_correction(txt)
|
15 |
+
txt = general_normalization.remove_not_desired_chars(txt)
|
16 |
+
txt = general_normalization.remove_repeated_punctuation(txt)
|
17 |
+
return ' '.join(txt.replace('\n', ' ').replace('\t', ' ').replace('\r', ' ').split())
|
18 |
+
|