senyukhin commited on
Commit
94c4f42
1 Parent(s): a8dc9d8

Upload 17 files

Browse files
activities/instructions.json ADDED
@@ -0,0 +1,130 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "obl": [
3
+ [
4
+ [
5
+ "obl",
6
+ "amod",
7
+ 0
8
+ ],
9
+ [
10
+ "obl",
11
+ "case",
12
+ 0
13
+ ],
14
+ [
15
+ [
16
+ "root",
17
+ "conj",
18
+ "ccomp"
19
+ ],
20
+ "obl",
21
+ 1
22
+ ],
23
+ [
24
+ [
25
+ "root",
26
+ "conj",
27
+ "ccomp"
28
+ ],
29
+ "advmod",
30
+ 0
31
+ ],
32
+ [
33
+ [
34
+ "root",
35
+ "conj",
36
+ "ccomp"
37
+ ],
38
+ "nsubj",
39
+ 0
40
+ ]
41
+ ]
42
+ ],
43
+ "root": [
44
+ [
45
+ [
46
+ "root",
47
+ "case",
48
+ 0
49
+ ],
50
+ [
51
+ "root",
52
+ "cop",
53
+ 0
54
+ ],
55
+ [
56
+ "root",
57
+ "advmod",
58
+ 0
59
+ ]
60
+ ]
61
+ ],
62
+ "nmod": [
63
+ [
64
+ [
65
+ "nmod",
66
+ "case",
67
+ 0
68
+ ],
69
+ [
70
+ [
71
+ "obj"
72
+ ],
73
+ "nmod",
74
+ 1
75
+ ],
76
+ [
77
+ "obj",
78
+ "amod",
79
+ 0
80
+ ],
81
+ [
82
+ [
83
+ "root",
84
+ "conj",
85
+ "ccomp"
86
+ ],
87
+ "obj",
88
+ 1
89
+ ]
90
+ ],
91
+ [
92
+ [
93
+ [
94
+ "root",
95
+ "conj",
96
+ "ccomp"
97
+ ],
98
+ "nmod",
99
+ 1
100
+ ],
101
+ [
102
+ [
103
+ "root",
104
+ "conj",
105
+ "ccomp"
106
+ ],
107
+ "case",
108
+ 0
109
+ ],
110
+ [
111
+ [
112
+ "root",
113
+ "conj",
114
+ "ccomp"
115
+ ],
116
+ "cop",
117
+ 0
118
+ ],
119
+ [
120
+ [
121
+ "root",
122
+ "conj",
123
+ "ccomp"
124
+ ],
125
+ "advmod",
126
+ 0
127
+ ]
128
+ ]
129
+ ]
130
+ }
activities/words.txt ADDED
@@ -0,0 +1,231 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ квн
diary.py CHANGED
@@ -21,6 +21,7 @@ def analyze(text):
21
 
22
  # # Выделение фактов из текста
23
  diary['locations'] = diary['tokens'].apply(lambda tokens: cp.get_facts(tokens, 'locations'))
 
24
 
25
  # Определение сентимента по записям
26
  diary['sent'] = diary['tokens'].apply(lambda tokens: sp.get_overall_sentiment(tokens))
 
21
 
22
  # # Выделение фактов из текста
23
  diary['locations'] = diary['tokens'].apply(lambda tokens: cp.get_facts(tokens, 'locations'))
24
+ diary['activities'] = diary['tokens'].apply(lambda tokens: cp.get_facts(tokens, 'activities'))
25
 
26
  # Определение сентимента по записям
27
  diary['sent'] = diary['tokens'].apply(lambda tokens: sp.get_overall_sentiment(tokens))
network_builder.py CHANGED
@@ -17,11 +17,18 @@ def build_graph(df):
17
  # Добавление связей дат и фактов, фактов и слов
18
  for index, row in df[['date_start', 'locations']].iterrows():
19
  for fact in row['locations']:
20
- G.add_node(fact[0], group="Category_word", color = "green")
21
  G.add_node(fact[1], group="Fact", color = "red")
22
  G.add_edge(row['date_start'], fact[1])
23
  G.add_edge(fact[0], fact[1])
24
 
 
 
 
 
 
 
 
25
  # Добавление связей даты записи с сентиментом
26
  for index, row in df[['date_start', 'sent_index']].iterrows():
27
  G.add_node(sp.get_most_sentiment([row['sent_index']]), group="Sentiment", color = "pink")
@@ -44,10 +51,17 @@ def dates_of_Diary_writing(G):
44
  def most_visited_places(G):
45
  res = Counter()
46
  for key, value in G.nodes.data():
47
- if value.get('group') == 'Category_word':
48
  res[key] = len(G[key])
49
  return [i[0] for i in Counter(res).most_common(3)]
50
 
 
 
 
 
 
 
 
51
 
52
  def facts_for_annotation(G, gender, most_places):
53
  '''
@@ -55,7 +69,7 @@ def facts_for_annotation(G, gender, most_places):
55
  '''
56
  res = Counter()
57
  for key, value in G.nodes.data():
58
- if value.get('group') == 'Category_word':
59
  res[key] = len(G[key])
60
  facts = [s for i in Counter(res).keys() for s in G.successors(i)]
61
 
@@ -113,10 +127,15 @@ def annotation(G, gender, locations):
113
  most_places = most_visited_places(G)
114
  facts = facts_for_annotation(G, gender, most_places)
115
  sentiment = sentiment_of_date(G)
 
116
 
117
  # facts = ', '.join([f"{fact[1].lower()} ({fact[0]})" for fact in facts])
118
  # facts = ''
 
 
 
 
119
 
120
- annotation = f'{wt.get_noun(gender).title()} этого дневника {wt.gender_transformer("вести", gender)} его с {dates[0]} по {dates[1]}. Наиболее часто {wt.get_pronoun(gender)} {wt.gender_transformer("описывал", gender)} {wt.inflector(most_places[0], "accs")}, {wt.inflector(most_places[1], "accs")} и {wt.inflector(most_places[2], "accs")}.\n\n{constuct_fact_for_annotation(facts, sentiment, gender, locations)}'
121
 
122
  return annotation
 
17
  # Добавление связей дат и фактов, фактов и слов
18
  for index, row in df[['date_start', 'locations']].iterrows():
19
  for fact in row['locations']:
20
+ G.add_node(fact[0], group="Location", color = "green")
21
  G.add_node(fact[1], group="Fact", color = "red")
22
  G.add_edge(row['date_start'], fact[1])
23
  G.add_edge(fact[0], fact[1])
24
 
25
+ for index, row in df[['date_start', 'activities']].iterrows():
26
+ for fact in row['activities']:
27
+ G.add_node(fact[0], group="Activity", color = "purple")
28
+ # G.add_node(fact[1], group="Fact", color = "red")
29
+ G.add_edge(row['date_start'], fact[0])
30
+ # G.add_edge(fact[0], fact[1])
31
+
32
  # Добавление связей даты записи с сентиментом
33
  for index, row in df[['date_start', 'sent_index']].iterrows():
34
  G.add_node(sp.get_most_sentiment([row['sent_index']]), group="Sentiment", color = "pink")
 
51
  def most_visited_places(G):
52
  res = Counter()
53
  for key, value in G.nodes.data():
54
+ if value.get('group') == 'Location':
55
  res[key] = len(G[key])
56
  return [i[0] for i in Counter(res).most_common(3)]
57
 
58
+ def most_activity(G):
59
+ res = Counter()
60
+ for key, value in G.nodes.data():
61
+ if value.get('group') == 'Activity':
62
+ res[key] = len(G[key])
63
+ return [i[0] for i in Counter(res).most_common(1)]
64
+
65
 
66
  def facts_for_annotation(G, gender, most_places):
67
  '''
 
69
  '''
70
  res = Counter()
71
  for key, value in G.nodes.data():
72
+ if value.get('group') == 'Location':
73
  res[key] = len(G[key])
74
  facts = [s for i in Counter(res).keys() for s in G.successors(i)]
75
 
 
127
  most_places = most_visited_places(G)
128
  facts = facts_for_annotation(G, gender, most_places)
129
  sentiment = sentiment_of_date(G)
130
+ activities = most_activity(G)
131
 
132
  # facts = ', '.join([f"{fact[1].lower()} ({fact[0]})" for fact in facts])
133
  # facts = ''
134
+ if activities:
135
+ act = f'В дневнике также упоминаниется игра в {activities[0]}.'
136
+ else:
137
+ act = ''
138
 
139
+ annotation = f'{wt.get_noun(gender).title()} этого дневника {wt.gender_transformer("вести", gender)} его с {dates[0]} по {dates[1]}. Наиболее часто {wt.get_pronoun(gender)} {wt.gender_transformer("описывал", gender)} {wt.inflector(most_places[0], "accs")}, {wt.inflector(most_places[1], "accs")} и {wt.inflector(most_places[2], "accs")}. {act}\n\n{constuct_fact_for_annotation(facts, sentiment, gender, locations)}'
140
 
141
  return annotation
test_1.txt CHANGED
@@ -1,3 +1,7 @@
 
 
 
 
1
  1943
2
 
3
  24 марта. Челябинск
 
1
+ 1940
2
+
3
+ 26 июня. Очень долго не писал. Это правда. Каждый день почти одинаковый. Сегодня был в лесу. Играю в шахматы. У меня 3 ½ очка, а у моего противника 4 ½ оч[ка]. Сейчас я отдыхаю и встал чтобы написать.
4
+
5
  1943
6
 
7
  24 марта. Челябинск