nevmenandr commited on
Commit
2c78799
1 Parent(s): 110aca0

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +200 -3
README.md CHANGED
@@ -1,3 +1,200 @@
1
- ---
2
- license: mit
3
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: mit
3
+ language:
4
+ - ru
5
+ tags:
6
+ - nlp
7
+ - word2vec
8
+ - dh
9
+ - fiction
10
+ ---
11
+
12
+ # Overview
13
+
14
+ The model is built on texts of 19th century Russian prose (realism) in order to explore characters. Inspired by [work](https://ceur-ws.org/Vol-1751/AICS_2016_paper_48.pdf) on English literature.
15
+
16
+ # Preparing data
17
+
18
+ The texts for the training corpus are taken from two datasets published in the [Open Data Repository on Russian Literature and Folklore](https://dataverse.pushdom.ru/):
19
+
20
+ Собчук, Олег; Лекаревич, Евгения, 2020, "[Корпус нарративной прозы XIX в.](https://dataverse.pushdom.ru/dataset.xhtml?persistentId=doi:10.31860/openlit-2020.10-C004)", https://doi.org/10.31860/openlit-2020.10-C004, Репозиторий открытых данных по русской литературе и фольклору, V2, UNF:6:b+jGaj4yVntc2WtSvZqumw== [fileUNF]
21
+
22
+ Казакова, Елена, 2023, "[Забытые романы русских писателей из фондов Пушкинского Дома (1857–1917)](https://dataverse.pushdom.ru/dataset.xhtml?persistentId=doi:10.31860/openlit-2023.12-C007)", https://doi.org/10.31860/openlit-2023.12-C007, Репозиторий открытых данных по русской литературе и фольклору, V2, UNF:6:DCGrSrMDXXtoRfHBDWfS4A== [fileUNF]
23
+
24
+ Only texts published after 1835 (the era of realism) remain in the corpus.
25
+
26
+ The texts are marked up using the Russian version of the booknlp library, which highlighted the characters of the fictional works.
27
+
28
+ Each character in the text was replaced by its id of kind:
29
+
30
+ `Character-textid-{textid}-charid-{entity_id}`
31
+
32
+ `textid` is an id of text made of hashsum of filename. Thus, textid is repeated as many times as there are characters in the corresponding text. The string is entirely unique.
33
+
34
+ The correspondences between character and id are fixed in a special file `allcharsmapped_corr.csv` included in the repository.
35
+
36
+ Unlike the usual practice of working with such models, the texts were not lemmatized and stop words were not excluded from them. Punctuation cut.
37
+
38
+ # Usage
39
+
40
+ ```python
41
+ import csv
42
+
43
+ # load names of the characters dict
44
+
45
+ cd = {}
46
+ with open('allcharsmapped_corr.csv', 'r') as csvfile:
47
+ reader = csv.reader(csvfile, delimiter=',')
48
+ for row in reader:
49
+ cd[row[0].strip(' "')] = {'name': row[1], 'filename': row[2], 'freq': row[3]}
50
+ ```
51
+
52
+ ## Searching for the exact id
53
+
54
+ The name of the character from *Home of the Gentry* by Ivan Turgenev
55
+
56
+ ```python
57
+ for nm in cd:
58
+ if 'Лаврецкий' in cd[nm]['name']:
59
+ print(nm, cd[nm]['name'])
60
+ ```
61
+
62
+ `Character-textid-1233692858423997945-charid-74 Лаврецкий | Лаврецкого | Лаврецкому | Лаврецким | Лаврецких | Молодой Лаврецкий | молодой Лаврецкий | бедный Лаврецкий | XXXI Лаврецкий | XXXIII Однажды Лаврецкий`
63
+
64
+ ```python
65
+ from gensim.models import Word2Vec
66
+ model = Word2Vec.load("w2vforms.model")
67
+ print(len(model.wv)) # vocabulary size
68
+
69
+ words = ['Character-textid-1233692858423997945-charid-74'] # what to look up in model
70
+
71
+ for word in words:
72
+ word_l = word.lower() # all words in model are in lower case
73
+ # search for word in model
74
+ if word_l in model.wv:
75
+ print(cd[word]['name'])
76
+ # 10 :
77
+ for i in model.wv.most_similar(positive=[word_l], topn=10):
78
+ # word, cosin distance
79
+ try:
80
+ print(cd[i[0].capitalize()]['name'], cd[i[0].capitalize()]['filename'], i[1])
81
+ except:
82
+ print(i[0], i[1])
83
+ print('\n')
84
+ else:
85
+ # :(
86
+ print(word + ' is not present in the model')
87
+
88
+ ```
89
+
90
+ ```
91
+ Лаврецкий | Лаврецкого | Лаврецкому | Лаврецким | Лаврецких | Молодой Лаврецкий | молодой Лаврецкий | бедный Лаврецкий | XXXI Лаврецкий | XXXIII Однажды Лаврецкий
92
+ Сергей Михайлыч | Сергея Михайлыча | Сергеем Михайлычем | Сергей же Михайлыч tolstoj_l_semejnoe_schaste_1859 0.6750872731208801
93
+ Иван Степанович | Ваня | Ивана Степановича | Стени | Ивану Степановичу | Вани | Ване | императора Ивана | Иваном Степановичем | Стени Иван Степанович polezhaev_p_lopukhinskoe_delo_1883 0.6608477830886841
94
+ Лиза | Лизы | Лизе | Лизу | Лизой | мою дочь Лизу | XXXIV Лиза | Лизе , которой только что пошел пятый год | Лиза , которая очень любила цветы | XLII Лиза turgenev_i_dvoryanskoe_gnezdo_1859 0.6512988805770874
95
+ character-textid-534782102185514500-charid-2141 0.6511214375495911
96
+ Левин | Николай | Николай Левин | Левина | Левину | брат Николай | Николая Левина | Николая | От брата Левин | Николай Левин , раздраженный возражением tolstoj_l_anna_karenina_1877 0.650296151638031
97
+ Соковлин | Соковлина | Соковлине | Но Соковлин | Молодой Соковлин | monsieur Соковлин | удивленный Соковлин | месье Соковлин | серьезно Соковлин | несколько Соковлина avdeev_m_podvodnyj_kamen_1860 0.6466697454452515
98
+ Вретищев | Вретищева | Вретищеву | доктор Вретищев | Вретищевым avseenko_v_izza_blag_zemnykh_1872 0.6466327905654907
99
+ Багрянский | Багрянского | Багрянскому | Багрянском | нетерпеливо Багрянский | Багрянской | В ужасе , Багрянский | молодого Багрянского | спросил Багрянский | Багрянских khvoshinskaya_n_bolshaya_medvediza_1870 0.6458360552787781
100
+ Вася | Бояринов | Бояринова | Васю | Васи | Васе | Бояринову | Бояриновым | Васи Бояринова | Спросил Вася iogel_m_mezhdu_vechnostyu_i_minutoj_1879 0.6448401808738708
101
+ Венецкий | Венецкого | Венецкому | Венецким | Венецком | Мосье Венецкий | опасно раненных оказался штабс-капитан Венецкий | Счастливые личным счастьем Венецкие stanyukovich_k_v_mutnoj_vode_1878 0.6413235664367676
102
+ ```
103
+
104
+ # Examples
105
+
106
+ Quasi-sinonyms of the main characters of Russian literature of 19th century:
107
+
108
+ ```python
109
+ from gensim.models import Word2Vec
110
+ model = Word2Vec.load("w2vforms.model")
111
+
112
+ words = ['Character-textid--3155236403543629788-charid-1138', 'Character-textid-4423538860970409858-charid-48', 'Character-textid-1233692858423997945-charid-74', 'Character-textid--2263910210560212786-charid-33', 'Character-textid--3155236403543629788-charid-1360']
113
+
114
+ for word in words:
115
+ word_l = word.lower() # all words in model are in lower case
116
+ # search for word in model
117
+ if word_l in model.wv:
118
+ print(cd[word]['name'])
119
+ # 10 :
120
+ for i in model.wv.most_similar(positive=[word_l], topn=10):
121
+ # word, cosin distance
122
+ try:
123
+ print(cd[i[0].capitalize()]['name'], cd[i[0].capitalize()]['filename'], i[1])
124
+ except:
125
+ print(i[0], i[1])
126
+ print('\n')
127
+ else:
128
+ # :(
129
+ print(word + ' is not present in the model')
130
+ ```
131
+
132
+ ```
133
+ Пьер | Пьера | Пьером | Безухов | Безухова | граф Безухов | Пьер Безухов | графиня Безухова | XVIII Пьер | В самом серьезном расположении духа Пьер
134
+ князь Андрей | Князь Андрей | князя Андрея | князю Андрею | Андрей | князем Андреем | Князю Андрею | князе Андрее | Андрея | Князя Андрея tolstoj_l_vojna_i_mir_1868 0.8655860424041748
135
+ Ростов | Николай | Ростова | Ростову | Ростовых | Николая | Ростовым | Николаю | Николаем | Ростовы tolstoj_l_vojna_i_mir_1868 0.8359265923500061
136
+ Пьер | Пьера | Анна Павловна | Анны Павловны | Пьером | Анне Павловне | мсье Пьер | Анну Павловну | Пьера Анна Павловна | сам Пьер tolstoj_l_vojna_i_mir_1868 0.768761157989502
137
+ Левин | Степан Аркадьич | Левина | Левину | Левиным | Левине | Левиных | Степан Аркадьич Левину | Степан Аркадьич , который любил физиологию | охотник Степан Аркадьич tolstoj_l_anna_karenina_1877 0.7645115256309509
138
+ Левин | Левина | Левину | Константин Левин | Костя | Константин Дмитрич | Константин | Левиным | Константина | Константину Левину tolstoj_l_anna_karenina_1877 0.7631195187568665
139
+ Алексей Александрович | Алексея Александровича | Алексею Александровичу | Каренина | Алексеем Александровичем | Каренин | Каренину | Алексей | Карениным | Алексее Александровиче tolstoj_l_anna_karenina_1877 0.6914079785346985
140
+ Вронский | Анна | Вронского | Вронским | Вронскому | Анны | Анне | Анну | Вронском | Аннушка tolstoj_l_anna_karenina_1877 0.6839613914489746
141
+ Пьеру | Пьеру духовною tolstoj_l_vojna_i_mir_1868 0.677771270275116
142
+ Глинский | Глинского | Глинскому | Глинским | г. Глинский | Глинском | Г. Глинский | бедный Глинский | самого Глинского | г. Глинскому bestuzhev_n_russkij_v_parizhe__goda_1860 0.6717219352722168
143
+ Вронский | Вронского | Вронскому | Алексей | Вронским | Алексей Вронский | Алексею | Алексея Вронского | Алексеем | Вронском tolstoj_l_anna_karenina_1877 0.6684336066246033
144
+
145
+
146
+ Базаров | Аркадий | Базарова | Аркадия | Аркадию | Базарову | Базаровым | Аркадием | Аркадию Базаров | господин Базаров
147
+ князь | Князь merder_n_vsya_chuzhaya_1885 0.7821471095085144
148
+ Павел Петрович | Павла Петровича | Павлу Петровичу | Павлом Петровичем | Павел | Кирсанов | Кирсанова | господин Кирсанов | изумленный Павел Петрович | один Павел Петрович turgenev_i_otzy_i_deti_1862 0.7807522416114807
149
+ Николай Петрович | Николая Петровича | Николаю Петровичу | Николай | Николая | Николая - чудотворца | бедному Николаю Петровичу | Николаем Петровичем turgenev_i_otzy_i_deti_1862 0.7124422788619995
150
+ доктор | Доктор merder_n_vsya_chuzhaya_1885 0.7010178565979004
151
+ Лука Иванович | Лука Иваныч | Луки Ивановича | Луке Ивановичу | Луку Ивановича | Лукой Ивановичем | Лука | Луке Ивановиче | какой-то другой Лука Иванович | Луки Ивановича , сидевшего у письменного стола boborykin.dolgo_li 0.6949086785316467
152
+ Володя | Шрам | Володи | Володю | Шрама | Володей | Шраму | Володя Шрам | Шраме | барону Шраму kushevskij_i_nikolaj_negorev_ili_blagopoluchnyj_rossiyanin_1871 0.6844052076339722
153
+ Паклин | Паклина | господин Паклин | Господин Паклин | г-н Паклин | Паклиным | господина Паклина | Сила Паклин | Молодой Паклин | любезный господин Паклин turgenev_i_nov_1877 0.6791232228279114
154
+ Николай Иванович | Николая Ивановича | Астафьев | Николаю Ивановичу | Астафьева | Астафьевым | Николаем Ивановичем | Николая Ивановича Астафьева | ничтожного Астафьева | Николай Иванович , сбитый с толку этим неожиданным вопросом merder_n_vsya_chuzhaya_1885 0.6773545742034912
155
+ Нежданов | Сипягин | Сипягина | Нежданова | Нежданову | Неждановым | Сипягиным | Сипягиной | Сипягину | Сипягиных turgenev_i_nov_1877 0.6740620136260986
156
+ Николай Всеволодович | Николая Всеволодовича | Николаю Всеволодовичу | Николай же Всеволодович | Николая | самого Николая Всеволодовича dostoevskij_f_besy_1871 0.6717023253440857
157
+
158
+
159
+ Лаврецкий | Лаврецкого | Лаврецкому | Лаврецким | Лаврецких | Молодой Лаврецкий | молодой Лаврецкий | бедный Лаврецкий | XXXI Лаврецкий | XXXIII Однажды Лаврецкий
160
+ Сергей Михайлыч | Сергея Михайлыча | Сергеем Михайлычем | Сергей же Михайлыч tolstoj_l_semejnoe_schaste_1859 0.6750872731208801
161
+ Иван Степанович | Ваня | Ивана Степановича | Стени | Ивану Степановичу | Вани | Ване | императора Ивана | Иваном Степановичем | Стени Иван Степанович polezhaev_p_lopukhinskoe_delo_1883 0.6608477830886841
162
+ Лиза | Лизы | Лизе | Лизу | Лизой | мою дочь Лизу | XXXIV Лиза | Лизе , которой только что пошел пятый год | Лиза , которая очень любила цветы | XLII Лиза turgenev_i_dvoryanskoe_gnezdo_1859 0.6512988805770874
163
+ character-textid-534782102185514500-charid-2141 0.6511214375495911
164
+ Левин | Николай | Николай Левин | Левина | Левину | брат Николай | Николая Левина | Николая | От брата Левин | Николай Левин , раздраженный возражением tolstoj_l_anna_karenina_1877 0.650296151638031
165
+ Соковлин | Соковлина | Соковлине | Но Соковлин | Молодой Соковлин | monsieur Соковлин | удивленный Соковлин | месье Соковлин | серьезно Соковлин | несколько Соковлина avdeev_m_podvodnyj_kamen_1860 0.6466697454452515
166
+ Вретищев | Вретищева | Вретищеву | доктор Вретищев | Вретищевым avseenko_v_izza_blag_zemnykh_1872 0.6466327905654907
167
+ Багрянский | Багрянского | Багрянскому | Багрянском | нетерпеливо Багрянский | Багрянской | В ужасе , Багрянский | молодого Багрянского | спросил Багрянский | Багрянских khvoshinskaya_n_bolshaya_medvediza_1870 0.6458360552787781
168
+ Вася | Бояринов | Бояринова | Васю | Васи | Васе | Бояринову | Бояриновым | Васи Бояринова | Спросил Вася iogel_m_mezhdu_vechnostyu_i_minutoj_1879 0.6448401808738708
169
+ Венецкий | Венецкого | Венецкому | Венецким | Венецком | Мосье Венецкий | опасно раненных оказался штабс-капитан Венецкий | Счастливые личным счастьем Венецкие stanyukovich_k_v_mutnoj_vode_1878 0.6413235664367676
170
+
171
+
172
+ Макар Девушкин | Макаром Девушкиным | Девушкин | Ваш Макар Девушкин | верный друг Макар Девушкин | пиита Девушкин | сам Девушкин | Ваш искренний друг Макар Девушкин | Покорнейший слуга ваш Макар Девушкин | Ваш истинный друг Макар Девушкин
173
+ character-textid--2263910210560212786-charid-1338 0.7358484268188477
174
+ Господин Быков | господин Быков | господином Быковым | Быков | Пришел Быков | господина Быкова dostoevskij_f_bednye_lyudi_1846 0.7262941002845764
175
+ character-textid-1136845811644681716-charid-1206 0.6773316860198975
176
+ character-textid-1136845811644681716-charid-3844 0.6563677787780762
177
+ character-textid-1136845811644681716-charid-2053 0.652981698513031
178
+ character-textid--7985429081029307543-charid-1531 0.652394711971283
179
+ Хозаров | Сергей Петрович | Хозарова | Хозарову | Сергея Петровича | Серж | Сергей Петрович Хозаров | Хозарове | батюшка Сергей Петрович | monsieur Хозаров pisemskiy.sergey_petrovich_khozarov_i_mari_stupitsyna 0.6416277289390564
180
+ character-textid--4293449816511506795-charid-290 0.6381958723068237
181
+ княгиня | Княгиня leontev_k_v_svoem_krayu_1864 0.6374576091766357
182
+ character-textid--4271048439950032603-charid-2583 0.6364111304283142
183
+
184
+
185
+ Каратаев | Платон | Каратаева | Платон Каратаев | Платона | Каратаевым | Каратаеву | И Платон Каратаев | И Платон | Платону Каратаеву
186
+ character-textid-4177657404362292091-charid-1523 0.6946800947189331
187
+ Ярошиньский | Ярошиньского | Ярошиньским | Ярошиньскому | пан Ярошиньский leskov_n_nekuda_1864 0.6883847713470459
188
+ преображенец | Преображенец kondratev_i_saltychikha_1888 0.6815229654312134
189
+ character-textid-817356164263296914-charid-544 0.6801170706748962
190
+ character-textid-3795814502554737590-charid-1649 0.6705427169799805
191
+ пришепетывал 0.6704264283180237
192
+ учитель | Учитель goncharov_i_obryv_1869 0.6669456958770752
193
+ character-textid--6401744739099736970-charid-2051 0.6653541326522827
194
+ Венявин | Венявина | Венявину | Венявин , выпивший две рюмки и совсем от этого захмелевший | Венявиным | Венявиных pisemskij_a_vzbalamuchennoe_more_1863 0.6645135283470154
195
+ Михалевич | Михалевича | Михалевичу | МихалевиЧ | Михалевичем | неугомонный Михалевич turgenev_i_dvoryanskoe_gnezdo_1859 0.6601350903511047
196
+ ```
197
+
198
+ # Related Publication
199
+
200
+ Coming soon