Есть ли какая-нибудь открытая библиотека на JavaScript, которая по форме английского слова определяла бы его начальную форму (правильно отбрасывала типичные окончания, приводила неправильные формы глаголов или множественного числа к словарным и т. д.)? Например, для thought возвращала бы think, для mice — mouse, для codes — code, для was — be, для writes — write. Нужно для расширения под Firefox.
У меня такая-же беда. Но я ищу вариант как это сделать в Java. Возможно конечно использовать и нативные библиотеки, но обязательно кросс-платформенные.
Одна из мыслей у меня была использовать hunspell. Есть библиотека под яву позволяющая напрямую читать словари (подсмотрел в solr). Но увы на простом тесте, чтобы привел men к man, или women к woman не прошло. Этот вариант был бы идеальным, т.к. возможно не только английский язык так приводить, а еще и множество других.
Также мог подойти вариант как в Solr используя стеминг (stemming), это отбрасывание окончаний для приведения к одной форме используя тот-же hunspell. Но для этих слов он также не подходит.
Первое — не совсем то, что мне нужно (алгоритмы выдают корни, основы слов, часто не совпадающие со словарной формой). Хотя в конце статьи есть много ссылок на реализации при помощи самых разных языков, в том числе Java и JavaScript.
Второе — как раз то, что нужно. Мне даже не нужен анализ контекста, алгоритм может выдавать все возможные варианты начальных форм для разных частей речи.
Кажется, есть открытые реализации полных морфологических анализаторов на Perl:
Посмотрите этот проект. Кажется, лучшее, что я нашёл на Java.
Если не ошибаюсь, нужны не все аннотаторы, а только цепочка из tokenize,ssplit,pos,lemma. Без разбора сущностей, синтаксического анализа и определения со-зависимостей (дальнейшие аннотаторы в цепочке) работает шустро (хотя я тестировал только на небольших текстах ~ по 4 тысячи знаков).
Кстати, только что обнаружил такую либу и сервис в интернете как JSpell (http://www.jspell.com/). Там указывают что можно подключить из JS через AJAX для проверки орфографии и выбора варианта замены как в ворде. Также можно посмотреть на WebJSpell (http://natura.di.uminho.pt/webjspell/jsol.pl) который по идее использует JSpell. При вводе слова в форму на сайте выдает начальную форму слова.
vmb, к сожалению мне эта библиотека не подходит, но надеюсь тебе она подойдет.