Какую обработку текста выполняет WikiCorpus в gensim? - PullRequest
1 голос
/ 13 апреля 2019

Я обучил модель doc2vec в корпусе Википедии, используя gensim, и я хочу получить векторы из разных документов.

Мне было интересно, что делает обработка текста функцией WikiCorpus, когда я использовал ее для обучения своей модели, например, удалил пунктуацию, сделал весь текст строчными, удалил стоп-слова и т. Д.

Это важно, так какЯ хочу выполнить ту же обработку текста для документов, из которых я делаю векторы, для большей согласованности / точности с моей моделью.

1 Ответ

1 голос
/ 13 апреля 2019

Чтобы точно знать, что сделано, лучше всего обратиться к исходному коду самого WikiCorpus, который вы можете просмотреть в своей локальной установке или в Интернете по адресу:

https://github.com/RaRe-Technologies/gensim/blob/develop/gensim/corpora/wikicorpus.py

Ключевыми функциями в этом файле для работы с необработанными данными дампа Википедии являются process_article(), filter_wiki() и remove_markup() - которые в конечном итоге также используют локальную функцию tokenize(), которая затем опирается на другую tokenize() из gensim.utilsмодуль.

И, WikiCorpus на самом деле вызывает utils.tokenize() с параметром lower=True для форсирования нижнего регистра.

Кроме того, utils.tokenize() использует функцию simple_tokenize(), которая, хотя и не имеет шага, который явно удаляет пунктуацию, ищет токены с помощью PAT_ALPHABETIC regex , который выбираеттокены, состоящие из словесных символов (\w), которые не начинаются с цифр (\d).

...