- PVSM.RU - https://www.pvsm.ru -
Оказывается для этого достаточно запуcтить всего лишь такой набор команд:
git clone https://github.com/attardi/wikiextractor.git
cd wikiextractor
wget http://dumps.wikimedia.org/ruwiki/latest/ruwiki-latest-pages-articles.xml.bz2
python3 WikiExtractor.py -o ../data/wiki/ --no-templates --processes 8 ../data/ruwiki-latest-pages-articles.xml.bz2
и потом немного отполировать скриптом [1] для пост-процессинга
python3 process_wikipedia.py
Результат — готовый .csv
файл с вашим корпусом.
Понятное дело, что:
http://dumps.wikimedia.org/ruwiki/latest/ruwiki-latest-pages-articles.xml.bz2
можно поменять на нужный вам язык, больше деталей тут [4] [2];wikiextractor
можно найти в мануале (кажется даже официальная дока не обновлялась, в отличие от мана);Скрипт с пост-процессингом конвертирует вики файлы в такую таблицу:
idx | article_uuid | sentence | cleaned sentence | cleaned sentence length |
---|---|---|---|---|
0 | 74fb822b-54bb-4bfb-95ef-4eac9465c7d7 | Жан I де Шатильон (граф де Пентьевр)Жан I де Ш... | жан i де шатильон граф де пентьевр жан i де ша... | 38 |
1 | 74fb822b-54bb-4bfb-95ef-4eac9465c7d7 | Находился под охраной Роберта де Вера, графа О... | находился охраной роберта де вера графа оксфор... | 18 |
2 | 74fb822b-54bb-4bfb-95ef-4eac9465c7d7 | Однако этому воспротивился Генри де Громон, гр... | однако этому воспротивился генри де громон гра... | 14 |
3 | 74fb822b-54bb-4bfb-95ef-4eac9465c7d7 | Король предложил ему в жёны другую важную особ... | король предложил жёны другую важную особу фили... | 48 |
4 | 74fb822b-54bb-4bfb-95ef-4eac9465c7d7 | Жан был освобождён и вернулся во Францию в 138... | жан освобождён вернулся францию году свадьба м... | 52 |
article_uuid — псевдо-уникальный ключ, порядок предложений по идее должен сохраниться после такого пре-процессинга.
Пожалуй, на настоящий момент развитие ML-инструментов достигло такого уровня [8], что для построения работающей NLP модели / пайплайна достаточно буквально пары дней. Проблемы возникают только при отсутствии надежных датасетов / готовых эмбеддингов/ готовых языковых моделей. Цель данной статьи — немного облегчить вашу боль, показав, что для обработки всей Википедии (по идее самого популярного корпуса для тренировки эмбеддингов слов в NLP) хватит и пары часов. В конце концов, если достаточно пары дней, чтобы построить простейшую модель, зачем тратить куда больше времени на получение данных для этой модели?
wikiExtractor
сохраняет статьи из Вики в виде текста, разделенного <doc>
блоками. Собственно, в основе скрипта лежит следующая логика:
nltk.sent_tokenize
разделяем на предложения;В качестве препроцессинга текста просто (можно легко перепилить под себя):
Чаще всего на практике в NLP приходится сталкиваться с задачей построения эмбеддингов.
Для ее решения обычно используют один из следующих инструментов: :
Кроме того, уже много раз было показано [9], что в качестве хорошего бейслайна для эмбеддингов предложений можно взять и просто усредненные (с парой незначительных деталей, которые сейчас опустим) векторы слов.
Распределение длины предложений для Русской Википедии
Без логарифмов (по оси X значения ограничены числом 20)
В десятичных логарифмах
Автор: Alexander
Источник [19]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/294945
Ссылки в тексте:
[1] скриптом: https://gist.github.com/snakers4/e0b0e68904db65671ca979639b337f7b
[2] [4]: https://dumps.wikimedia.org/backup-index.html
[3] векторы: https://fasttext.cc/docs/en/pretrained-vectors.html
[4] модели: http://rusvectores.org/ru/models/
[5] библиотека: https://github.com/attardi/wikiextractor.git
[6] Word2Vec: http://arxiv.org/abs/1607.04606
[7] Fast-Text: http://arxiv.org/abs/1712.09405
[8] тюнинг: http://arxiv.org/abs/1802.06893
[9] InferSent: http://arxiv.org/abs/1705.02364
[10] pre-training: https://blog.openai.com/language-unsupervised/
[11] ULMFiT: http://arxiv.org/abs/1801.06146
[12] представления: http://arxiv.org/abs/1802.05365
[13] NLP: https://thegradient.pub/nlp-imagenet/
[14] 1: https://openreview.net/pdf?id=SyK00v5xx
[15] 2: http://nlp.town/blog/sentence-similarity/
[16] 3: https://arxiv.org/abs/1806.06259
[17] 4: http://www.offconvex.org/2018/09/18/alacarte/
[18] фальшивых фраз: https://arxiv.org/abs/1808.03840
[19] Источник: https://habr.com/post/425507/?utm_source=habrahabr&utm_medium=rss&utm_campaign=425507
Нажмите здесь для печати.