Алгоритм выделения корня русского слова

B
На сайте с 22.06.2005
Offline
1
7251

Подскажите алгоритм или ссылочек хороших дайте, плззз, на алгоритм разбора русского слова. Мне необходимо выделить корень слова (отбросить последовательно окончание, суффикс и приставку). Все что нашел - либо на ПРОЛОГе, либо на РЕФАЛе... А мне бы на С++ или на Pascal'е...

Также нужен словарь этих самых корней (либо подскажите как обойтись без него..)

Заранее благодарен!!!

lagif
На сайте с 15.12.2004
Offline
30
#1

Без словаря - бесплатно, наверное, только стемминг.

Алгоритмов стемминга - море, но стемминг - не лучшее решение. Это скажет любой, кто им пользовался :). Самый приятный мне стеммер - бесплатная либа Андрея Коваленко с исходниками на сях. (http://linguist.nm.ru/)

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

Есть также море морфологических анализаторов, как платных, так и бесплатных. Они основаны на словарях, а словари постоянно требуется пополнять. Пробовала шароварную урезанную версию анализатора Коваленко: понравилось. Если б еще моя фирма раскошелилась на полную версию - было бы мне счастье :)

ps Вопрос поднимается тут далеко не первый раз. И в конечном счете каждый, наверное, придумывает свое...

Это тоже пройдет...
S
На сайте с 17.10.2005
Offline
17
#2

А конечную цель можно описать? Смемминг делает довольно много ошибок. Когда я не знал такого слова, сам написал примитивный механизм. Работал, но не очень качественно. Может, морфологический словарь будет лучше? Здесь можно посмотреть: http://aot.ru

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий