таблица переходов n-граммной цепи Маркова

Я пытаюсь построить n-граммную марковскую модель из данного фрагмента текста, а затем получить доступ к таблице переходов для нее, чтобы я мог вычислить условную энтропию для каждой последовательности слов длины n (граммы). Например, в 2-граммовой модели после прочтения корпуса текста

"собаки гоняют кошек собаки гоняют кошек собаки гоняют кошек собаки гоняют кошек собаки гоняют кошек собаки гоняют кошек собаки гоняют кошек собаки гоняют кошек собаки гоняют кошек собаки гоняют людей"

и строя внутреннюю таблицу переходов, состояние «гонятся за собаками» может переходить в состояние «гонятся за кошками» с вероятностью 0,9, а в состояние «гонятся за людьми» с вероятностью 0,1. Если я знаю возможные переходы, я могу вычислить условную энтропию.

Есть ли хорошие библиотеки Python для этого? Я проверил NLTK, SRILM и другие, но ничего не нашел.


person Dan    schedule 29.04.2014    source источник
comment
Я думаю, что сделать это вручную не должно быть слишком сложно... возможно, перебрать все пары и сделать простую матрицу подсчета, а затем нормализовать каждую строку, чтобы получить матрицу перехода.   -  person Bach    schedule 30.04.2014


Ответы (1)


Прошло чуть больше 4 лет с тех пор, как этот пост был впервые создан, и у меня возникла та же проблема. Хотя это можно сделать вручную, я пошел дальше и создал пакет adaptationism, который предоставляет немного больше функциональности!

Вы можете не только получить доступ к таблицам переходов, но и сделать это для любых комбинаций N-грамм.

Я буду продолжать развивать этот инструментарий с течением времени, и, пожалуйста, не стесняйтесь присылать мне предложения по будущим функциональным возможностям!

person shadow_dev    schedule 03.07.2018