Скрипты для обработки коллекции ММРО.
Скрипт делает следующее:
- Выделяет из
*.tex
заголовок и автора статьи, а также текст между\maketitle
и библиографией. - Очищает текст от элементов LaTeX с помощью
detex
. - Находит для всех слов начальную форму и часть речи с помощью Mystem (с контекстным снятием омонимии).
- Разбивает текст на абзацы.
- Разбивает абзацы на предложения с помощью обученного на русских фразах
PunktSentenceTokenizer
из NLTK. - Собирает всё в JSON-файл следующего формата:
- В файле содержится единственный документ.
- Документ – объект с полями
title
,author
иtext
. - В
title
иauthor
находятся строки с заголовком и автором (авторами) статьи, вtext
находится массив абзацев. - Абзац – массив предложений.
- Предложение – массив слов.
- Слово – объект с обязательным полем
raw
и опциональными полямиlex
иpos
. - В
raw
находится фрагмент исходного документа: слово или символы между слов; вlex
находится исходная форма слова; вpos
находится метка части речи в формате, используемом в Mystem.
Для корректной работы в папке со скриптом должны лежать:
- Mystem (нужна версия 3.0)
- Файл russian.pickle
Также должен быть установлен detex (входит в пакет texlive-extra-utils
в Ubuntu).
python3 tex2json.py tests/*.tex # создаст для каждого файла *.tex файл *.tex.json
Преобразует набор документов в JSON-формате в коллекцию в формате Vowpal Wabbit.
python3 json2vpwb.py tests/*.json collection.vpwb # создаст коллекцию collection.vpwb в текущей папке.
Преобразует документ в JSON-формате в текстовый документ без разметки, где каждое предложение начинается с новой строки, а абзацы разделяются пустыми строками. Удобно для отладки.
python3 json2txt.py tests/*.json collection.vpwb # создаст для каждого файла *.json файл *.json.txt