Update README.md
Browse files
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
|