изобретал свой велосипед в формате word segmentation. Скормил в него примерно 2,5млн слов на основе словарей русского языка. Все было хорошо, до момента очередного теста. На вход "гореотума" на выходе получил "горе о тума". Заглянул в словарь, там реально есть слово "тума". С учетом того, что я в настройках указал приоритет нахождения минимального числа слов, то у результата "горе о тума" будет приоритет выше чем "горе от ума" т.к. найдено 2 а не 3 вхождения. p.s. "тума", появилось в словаре после заливки в него списка населенных пунктов, и в данном случае это гео в России (( Это конечно частный случай, но думаю что таких "результатов", якобы корректных будет море... Как поступить?
Тебе точно нужно гипотезы ранжировать какой-нибудь языковой моделью; можно даже очень примитивной, но знающей, что "от ума" встречется чаще, чем "о тума".
Причём чаще по двум причинам: мало того, что Тума - редкое слово, так ещё и "о Тума" вряд ли скажут, а скажут "о Туме".
Я вот почти-сегментацию пробовал сделать на основе языковой модели на счётчиках буквенных n-gramm. И такое уже зашло:
habr.com/ru/post/346578/ . А если модель нормальную сделать, знающую о словаре и о совместимости слов друг с другом, то точно всё будет хорошо.