adhaesitadimo / text_stat_analysis

Some functions for statistical analysis of texts' morphology and lexical aspects

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Статистический анализ текстов для курса "Автоматическая обработка текста" на ФКН НИУ ВШЭ.

Пузырев Дмитрий Александрович

Репозиторий содержит два файла с кодом:

stat_analysis.py: класс с методами подсчета статистик. Включает в себя следующие функции:

  1. get_symbols_amount — подсчет числа символов в тексте, с пробелами, без пробелов и без знаков препинания (то есть все буквенные символы)
  2. get_sentences_amount — подсчет числа предложений в тексте, среднего числа непробельных и буквенных символов на предложение
  3. get_token_amount — подсчет числа токенов, среднего числа токенов на предложение
  4. get_words_amount — подсчет числа словоупотреблений, среднего числа словоупотреблений на предложение
  5. get_mean_word_length — подсчет средней длины словоупотребления в тексте
  6. get_mean_word_length — подсчет числа уникальных словоформ в тексте
  7. get_word_frequency — вывод заданного числа наиболее частотных словоформ текста с частотами и отн. частотам, прорисовка круговой диаграммы частот
  8. get_word_pos_frequency — подсчет частот частей речи по словоформам, прорисовка диаграммы (здесь и в дальнейшем лейблы граммем по стандарту opencorpora http://opencorpora.org/dict.php?act=gram)
  9. get_noun_cases_frequency, get_adj_cases_frequency — подсчет частот падежей существительных и прилагательных, прорисовка диаграммы (opencorpora)
  10. get_noun_numbers_frequency, get_adj_numbers_frequency, get_verb_numbers_frequency — подсчет частот чисел существительных, прилагательных, глаголов, прорисовка диаграммы (opencorpora)
  11. get_verb_pers_frequency — подсчет частот лицевых форм глагола, прорисовка диаграммы (opencorpora)
  12. get_lemms_amount — подсчет числа лемм в тексте
  13. get_richness — коэффициент лексического богатства текста
  14. get_lemm_frequency — вывод заданного числа наиболее частотных лемм текста с частотами и отн. частотам, прорисовка круговой диаграммы частот
  15. get_lemm_pos_frequency — подсчет частот частей речи по леммам, прорисовка диаграммы
  16. get_pos_lemm_frequencies — вывод заданного числа наиболее частотных лемм указанной по лейблу части речи, прорисовка диаграмм
  17. check_zipf_words, check_zipf_lemms — прорисовка графика зависимости отн. частоты словоформы/леммы от ее ранга; аппроксимация указанной зависимости законом Ципфа с C=относительнольной частоте самого распространённого слова
  18. draw_pie — служебная функция для прорисовки диаграмм
  19. write_log_to_path — служебная функция для записи всех запрошенных статистик в указанный текстовый файл

Класс инициализируется созданием метода StatAnalysis(). Для инициализации необходим путь к текстовому файлу (при инициализации класс сам его откроет). Опционально можно поставить флаг make_log на True, тогда вся статистика будет записана в одну строку.

Пример использования отражен в тестовом скрипте test.py. Его можно запустить из командной строки следующим образом:

python test.py <путь к тексту> <True или False в зависимости от желания получить текстовый файл с результатами> --log <путь к логу опционально>

Все возможные статистики будут выведены на экран.

В репозитории содержаться результаты полного анализа второй главы "Алисы в стране чудес" Льюиса Кэролла и второй главы "Generation П" Виктора Пелевина.

About

Some functions for statistical analysis of texts' morphology and lexical aspects


Languages

Language:Python 100.0%