Большая word2vec-модель на русскоязычных художественных текстах
Общие замечания
Это векторная семантическая модель, натренированная с помощью алгоритма word2vec на корпусе русскоязычных художественных текстов объемом 13 млрд слов.
Общеизвестно, что расположение векоров в векторном пространстве модели зависит от жанровых особенностей обучающего корпуса1. Исходя из этих соображений представляется полезным обучить модель только на художественных текстах, чтобы иметь под рукой инструмент как академического исследования векторной семантики в художественной литературе, так и основу для инженерных решений в области автоматической обработки художественных текстов.
Корпус
Отбор текстов
В обучающий корпус вошли произведения как классической русской литературы, так и принадлежащие современным авторам. Отбор авторов по степени их известности, жанровым преференциям внутри художественного сегмента литературы и литературным школам не производился. Единственным критерием включения текста в корпус была возможность отнести его к сфере fiction.
Предобработка и объемы
Общий объем обучающего корпуса до предобработки составил 13 981 681 569 слов. В соответствии с практикой обучения word2vec-моделей2 он был разбит на предложения с помщью сплиттера sentenize из модуля razdel3. Предложения короче 5 символов при формировании корпуса игнорировались:
python
12defsplt(doc, fw):34for sentence in doc:5 se =list(sentence)6 string = se[2]7iflen(string)<5:8continue9 fw.write(string.strip())10 fw.write("\n")
В итоге корпус составил 1 357 318 182 предложения. Каждое предложение было представлено в результирующем файле на отдельной строке. При разбиении на предложения исходный корпус обрабатывался поабзацно, было обработано приблизительно 539 300 000 абзацев.
Корпус был лемматизирован с помощью программы Mystem4. Из текстов удалены все стоп слова в соответствии с этим перечнем. После удаления стоп-слов корпус сократился до 7 363 305 726 слов.
Особенность модели
В модели представлены только леммы, грамматическая информация (например, частеречная принадлежность) отсутствует по причине высоких временных и вычислительных затрат на ее включение.
Обучение модели
Код обучения и сохранения модели, содержит параметры обучения:
Все леммы присутствуют в модели в словарном написании в нижнем регистре.
Код получения сведений о ближайших соседях заданной лексемы (для слов "слово", "язык", "речь"). Сведения выводятся на экран:
python
12import gensim
34model = gensim.models.Word2Vec.load("cbow_300_10.model")56words =['слово','язык','речь']78i =09for w in words:10 i +=111if i >10:12break13print(w)14for w in model.wv.most_similar(positive=[w], topn=10):15print(w[0], w[1])16print('\n')17
Научные публикации об исследованиях языка русской художественной литературы с использованием векторно-семантических моделей
Орехов Б. В. Индивидуальная семантика Л. Н. Толстого в свете векторных моделей // Terra Linguistica. — 2023. — Т. 14. — № 4. — С. 119–129. DOI: 10.18721/JHSS.14409
Орехов Б. В. Стихи и проза через призму дистрибутивной семантики // Острова любви БорФеда: Сборник к 90-летию Бориса Федоровича Егорова / ИРЛИ РАН; СПбИИ РАН; Союз писателей Санкт-Петербурга; Ред.;сост. А. П. Дмитриев и П. С. Глушаков. — СПб.: Издательство «Росток», 2016. — С. 652–655.
Другие публикации word2vec-моделей на художественных текстах
Публикатор признателен Евгении Лекаревич за помощь в отборе текстов для обучающего корпуса.
Примечания
См. Kutuzov A., Kuzmenko E. Comparing Neural Lexical Models of a Classic National Corpus and a Web Corpus: The Case for Russian // Lecture Notes in Computer Science. 2015. 47‒58. doi:10.1007/978-3-319-18111-0_4