
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.217.4] |
![]() |
|
Сообщ.
#1
,
|
|
|
Всем привет. Народ, может кто знает алгоритм (или его реализация на C#) для определения корня слова?
Например пользователь ввёл слова "быстрый" или "быстрее" или "быстро" , а алгоритм бы определил корень - быстр. Сколько гуглом не искал, так ничего толкового и не нашёл ((( |
Сообщ.
#2
,
|
|
|
Сообщ.
#3
,
|
|
|
Думаю лучше всего будет завести базу из самых частых слов/корней.
Подбирая из неё вы убьёте 90% слов. А на оставшихся 10% будете потихоньку, внимательно и аккуратно разбивать на типичные группы и особые. Типичные снова займут 9%, а оставшиеся будут сильной экзотикой. Но и с ней, если приспичит, вы таким же образом справитесь. |
![]() |
Сообщ.
#4
,
|
|
Для начала (и, собственно, конца) надо заиметь математически строгое определение понятия корень
Это к лингвистам-филологам, хай думают или представят нам нечто уже готовое |
Сообщ.
#5
,
|
|
|
Спасибо
|
Сообщ.
#6
,
|
|
|
Цитата darcus @ Что-то я сомневаюсь. Вы ж читали про 'китайскую комнату'? Поэтому хорошо бы заменить ваше 'надо' на 'было бы полезно'. Для начала (и, собственно, конца) надо заиметь математически строгое определение понятия корень |
Сообщ.
#7
,
|
|
|
Цитата Славян @ Цитата darcus @ Что-то я сомневаюсь. Вы ж читали про 'китайскую комнату'? Поэтому хорошо бы заменить ваше 'надо' на 'было бы полезно'.Для начала (и, собственно, конца) надо заиметь математически строгое определение понятия корень Не надо сомневаться, без точного однозначного определения, задача не решаема. |
Сообщ.
#8
,
|
|
|
Цитата esperanto @ К счастью, вы ошибаетесь. Без точного определения целая куча задач 'решается'. Счастье же в том, что находится около-решение, но оно полностью удовлетворяет человека/людей. Так и следует поступать и в этом случае. Не надо сомневаться, без точного однозначного определения, задача не решаема. |
Сообщ.
#9
,
|
|
|
Математика и алгоритмы и наука не решает задачи, которые не имеют определения.
Увы. Поэтому с задачами без определений лучше идти во флейм. |
Сообщ.
#10
,
|
|
|
esperanto
Цитата esperanto @ Не надо сомневаться, без точного однозначного определения, задача не решаема. Она и с точным определением может не решаться. Цитата esperanto @ Математика и алгоритмы и наука не решает задачи, которые не имеют определения. Определения корня можно найти в любом толковом словаре. Вот только одного определения мало. Да и в математике есть ряд спорных вопросов нерешаемых из-за того что определения не может быть чётко сформулировано. А также есть парадоксы которые даже с математической точки нерешаемые. Цитата esperanto @ Увы. Поэтому с задачами без определений лучше идти во флейм. Алгоритм это строгая последовательность действий. Поэтому согласен что данный вопрос не совсем к месту. Но есть куча научных методов. Начиная от метода научного тыка. Проблема математике то, что она решает задачи только со строгими начальными условиями, когда как в науке этого обычно недостаёт. И данный вопрос можно решать и обсуждать не точно, а приближённо. |
Сообщ.
#11
,
|
|
|
Цитата Pavia @ В зависимости от реализации часто бывает совершенно ненаучным.Начиная от метода научного тыка. Если задача нечётко сформулирована, то остаётся вероятность, что в ходе её решения будет найдено решение не совсем той задачи, которую нужно решить. |
![]() |
Сообщ.
#12
,
|
|
Совершенно строгое определение (в виде алгоритма):
1. Составляем два списка префиксов и суффиксов. 2. Берем слово и внаглую откусываем от него префикс и суффикс (если они есть в наших списках). 3. То, что останется от нашего слова, назовем корнем этого слова. |
Сообщ.
#13
,
|
|
|
П.С. снимем, товарищи, шляпы пред отчаянно сражавшимся, но павшим окончанием...
Добавлено Впрочем, нет, - наденем! Раз речь про префикс, а не про приставку, видимо разговор идёт про англо-саксонские языки. Добавлено Если по существу, то у кучи слов будет дурацкий корень. Например у слова вокал, он будет пустой. Ибо 'в' (и 'во'!) - префикс, а 'ок' и 'ал' - типичные суффиксы. Последний неявный такой... |
Сообщ.
#14
,
|
|
|
Скорее всего придётся хранить и перечень возможных корней
|
Сообщ.
#15
,
|
|
|
Может изначально задача была не для русского языка?
|
Сообщ.
#16
,
|
|
|
Цитата esperanto @ Математика и алгоритмы и наука не решает задачи, которые не имеют определения. Увы. Поэтому с задачами без определений лучше идти во флейм. У Вас очень убогое представление о математике. Математик-теоретик решает то, что можно, так, как нужно. А математик-прикладник - то, что нужно, так, как можно. По-вашему же выходит, что прикладников в природе не существует. Но эта точка зрения опровергается посредством наблюдений. |
Сообщ.
#17
,
|
|
|
Да нет, представление о математике у него очень даже в порядке. Ты сосредоточился на можно/нужно, он же говорит об определении задачи.
В любом случае перед тем как решать задачу, необходимо определить, в чём же собственно она состоит. А дальше те задачи, которые можно решить точными методами решаются точно, а те, которые так не решаются - приближёнными. В данном случае задача недостаточно определена. И в такой постановке (без указания дополнительных условий) может оказаться практически нерешаемой. |
Сообщ.
#18
,
|
|
|
Цитата amk @ В данном случае задача недостаточно определена. И в такой постановке (без указания дополнительных условий) может оказаться практически нерешаемой. Эта задача как раз относится к категории практических задач, которые не могут быть определена точнее. В данном случае следует не доопределять задачу, а переопределять ее, т.е. вместо одной задачи решать другую. Но при этом нужно осознавать, что мы решаем именно другую затем, что другая тоже может не являться совсем точной, и в случае возникновения неоднозначностей, разрешать их следует, исходя из первоначальной задачи, а не переопределенной. |
Сообщ.
#19
,
|
|
|
Цитата andriano @ Это задача из категории "решите задачу" без описания самой задачи. Здесь сказано только, что нужно выделить корень, и ни слова не сказано ни о языке (предположительно русский), ни о множестве допустимых слов, ни о других ограничениях на входные слова.Эта задача как раз относится к категории практических задач, которые не могут быть определена точнее. Собственно, я вижу только одно практическое решение этой задачи - использование справочника, в котором перечислены все возможные приставки, суффиксы и окончания, и словаря корней, в котором может быть придётся описать возможные варианты словообразования (есть слова не подчиняющиеся общим правилам - замок-замочек, вжигать-вожжённый; есть слова, в которых от исходного корня вообще ничего не остаётся). |
Сообщ.
#20
,
|
|
|
Язык - русский. Всё равно всем спасибо, нашёл Стемминг Портера, буду пробовать его.
|
Сообщ.
#21
,
|
|
|
Цитата amk @ Собственно, я вижу только одно практическое решение этой задачи... Я тоже вижу только один способ решения этой задачи. Более того - уверен, что другого не существует. |