Этот набор скриптов создан для извлечения слов определённой части речи с заданными грамматическими категориями. На данный момент есть следующие скрипты:
verbs_imp.py
— извлекает из файлов все глаголы повелительного наклонения.verbs_imp_verblist.py
— на основе таблицы с извлечёнными глаголами повелительного наклонения создаёт частотный список лемм, отсортированный в убывающем порядке.advs_cmp.py
— извлекает все наречия сравнительной степени, сопоставляет слово с репликой.
Для работы скриптов нужно, кроме собственно Python, установить BeautifulSoup (bs4) для парсинга EAF-файлов и Pymorphy2 для получения начальной формы глагола. Можно, находясь в папке со скриптами, выполнить следующую команду:
pip install -r requirements.txt
Для использования скриптов нужно поместить обрабатываемые EAF-файлы в папку in
.
Поместите EAF-файлы в папку in
и запустите verbs_imp.py
. Дождитесь, пока будут обработаны все файлы в папке. Если скрипт не смог обработать какой-то файл (например, невалидный XML), в консоль выведется сообщение об ошибке, а в папке logs
, в файле errors_verbs_imp.log
появятся детали этой ошибки. При этом выполнение скрипта не прерывается, а происходит переход к следующему файлу.
После завершения выполнения скрипта (в консоль будет выведено сообщение "Done!"), в папке появится файл verbs_imp.csv
, содержащий извлечённые данные в формате File Name;Token;Lemma
. Кроме того, в подкаталоге out_verbs_imp
будут текстовые файлы, соответствующие каждому обработанному EAF-файлу, со списком полученных токенов (один на строку).
Обратите внимание, что лемматизация происходит с помощью библиотеки Pymorphy2. Она не всегда правильная, могут быть ошибки.
Запустите verbs_imp_wordlist.py
. Обратите внимание, что скрипт работает с файлом verbs_imp.csv
, то есть перед запуском скрипта нужно выполнить предыдущий (verbs_imp.py
).
После завершения работы скрипта вы получите файл verbs_imp_wordlist.csv
, содержащий извлечённые данные в виде: Lemma;Quantity
. Леммы будут отсортированы в порядке убывания их частотности.
Поместите EAF-файлы в папку in
и запустите advs_cmp.py
. Дождитесь, пока будут обработаны все файлы в папке. Если скрипт не смог обработать какой-то файл (например, невалидный XML), в консоль выведется сообщение об ошибке, а в папке logs
, в файле errors_advs_cmp.log
появятся детали этой ошибки. При этом выполнение скрипта не прерывается, а происходит переход к следующему файлу.
После завершения выполнения скрипта (в консоль будет выведено сообщение "Done!"), в папке появится файл advs_cmp.csv
, содержащий извлечённые данные в формате File Name;Token;Utterance
. Кроме того, в подкаталоге out_advs_cmp
будут текстовые файлы, соответствующие каждому обработанному EAF-файлу, со списком полученных токенов (один на строку).
Обратите внимание, что в этом скрипте лемматизация не производится, потому что наречия сравнительной степени омонимичны прилагательным сравнительной степени, от которых образованы. Следовательно, лемматизация производится неправильно (в качестве леммы возвращается прилагательное, а не наречие).
В идеале нужно сделать один скрипт, которому на вход подаются части речи и их грамматические категории, а на выходе — соответствующие данные. Надеюсь, у меня дойдут руки и до этого. :-)