Здравствуйте!
Собственно, я кратко расскажу о том, как, на мой взгляд, получился весьма неплохойи почти бессловарный POS-tagger на javascript:
PidginSyntax.js;
Применение — «КРАСНОРЕЧИЕ».
Код опирается на лемматизатор с алгоритмом Snowball.
pidginSyntax.js работает так:
pidginSyntax отлично определяет причастия, глаголы и прилагательные и чуть хуже — существительные.
Хуже всего определяются наречия, т.к. «слово» довольно трудно отличить от «ново» лишь по морфемам. Поэтому большинство наречий по умолчанию откатываются в существительные, но используя частотный словарь, выделены некоторые предпоследние буквы, типичные для наречий — «ш», «в», «х». Это значительно повышает точность различия pidginSyntax' ом наречий.
Также, код предусматривает игнорирование возвратного суффикса «ся».
Этот код можно использовать для работы, в которой приемлема точность в 70-90% и необходим легкий POS-tagger. Он занимает в 100 раз меньше места, чем корпусные POS-tagger'ы (например) и работает в 5-20 раз быстрее оных.
Собственно, я кратко расскажу о том, как, на мой взгляд, получился весьма неплохой
PidginSyntax.js;
Применение — «КРАСНОРЕЧИЕ».
Код опирается на лемматизатор с алгоритмом Snowball.
pidginSyntax.js работает так:
- Каждое слово в тексте разбивается на лемму и «окончание»
- Используя список «окончаний», типичных для каждой части речи
- Часто употребляемые слова, некорректно определяемые pidginSyntax' ом, выделены в отдельный список — по большей части, его составляют служебные слова
pidginSyntax отлично определяет причастия, глаголы и прилагательные и чуть хуже — существительные.
Хуже всего определяются наречия, т.к. «слово» довольно трудно отличить от «ново» лишь по морфемам. Поэтому большинство наречий по умолчанию откатываются в существительные, но используя частотный словарь, выделены некоторые предпоследние буквы, типичные для наречий — «ш», «в», «х». Это значительно повышает точность различия pidginSyntax' ом наречий.
Также, код предусматривает игнорирование возвратного суффикса «ся».
Этот код можно использовать для работы, в которой приемлема точность в 70-90% и необходим легкий POS-tagger. Он занимает в 100 раз меньше места, чем корпусные POS-tagger'ы (например) и работает в 5-20 раз быстрее оных.