Skip to content

Futyn-Maker/EAF-Parsers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EAF Parsers

Этот набор скриптов создан для извлечения слов определённой части речи с заданными грамматическими категориями. На данный момент есть следующие скрипты:

  1. verbs_imp.py — извлекает из файлов все глаголы повелительного наклонения.
  2. verbs_imp_verblist.py — на основе таблицы с извлечёнными глаголами повелительного наклонения создаёт частотный список лемм, отсортированный в убывающем порядке.
  3. 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-файлу, со списком полученных токенов (один на строку).

Обратите внимание, что в этом скрипте лемматизация не производится, потому что наречия сравнительной степени омонимичны прилагательным сравнительной степени, от которых образованы. Следовательно, лемматизация производится неправильно (в качестве леммы возвращается прилагательное, а не наречие).

Планы

В идеале нужно сделать один скрипт, которому на вход подаются части речи и их грамматические категории, а на выходе — соответствующие данные. Надеюсь, у меня дойдут руки и до этого. :-)

About

Some parsers for ELAN-files

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages