Получение английского слова в нормальной форме

Professor

Новичок
Привет!
Подскажите пожалуйста, есть ли уже готовые библиотеки по определению базовой формы слова из его словоформ?
Пример
gone => go
went => go
buildings => building

И при этом еще нужно понять, а вообще слово английское или нет.
 

fixxxer

К.О.
Партнер клуба
Я такое делал через hunspell.

Писал extension-обертку для php - лежит вот тут (пример сборки там - под Ubuntu 12).

Документация на саму библиотеку - вот тут, плюс смотреть как оно обернуто (а оно обернуто прямолинейно) у меня в Main.cpp.

Словари можно взять или вот тут, или, например, из OpenOffice. Стандартные из debian/ubuntu тоже подойдут, обычно лежат в /usr/share/dictionaries.

Пример:

Код:
$ php -r 'var_dump( (new hunspell("en_GB.dic", "en_GB.aff"))->analyze("doing") );'
array(2) {
  [0]=>
  string(14) " st:doing ts:0"
  [1]=>
  string(33) " st:do ts:0 al:did al:didst is:Vg"
}

$ php -r 'var_dump( (new hunspell("en_GB.dic", "en_GB.aff"))->analyze("went") );'
array(2) {
  [0]=>
  string(12) " st:go ts:Vd"
  [1]=>
  string(19) " st:wend ts:0 is:Vd" // ну а что, тоже логично :)
}
UPD: Мне надо было обрабатывать дофига слов в реалтайме. Если у тебя немного - проще использовать hunspell command line через exec.
 
Последнее редактирование:
Сверху