Нормализация падежа/склонения/числа/времени и т.д.
у пианиста и бачана был лемматизатор, вот: http://github.com/bachan/libturglem
а насколько хочется многоязычный?
а насколько хочется многоязычный?
а насколько хочется многоязычный?пока что надо английски/русский/белорусский/хохляцкий/казахский и скоро потребуется китайский, но там я вообще хз как всё устроено.
Для того, чтобы опечатки в окончании исправлялись правильно: крушк->кружкаа с чего это он узнает, что надо кружка, а не кружку, кружке, кружки и т.п.?
по правилом русское языкам, вестимо
http://ru.wiktionary.org/wiki/%D0%9F%D1%80%D0%B8%D0%BB%D0%BE...
http://school-assistant.ru/?predmet=russian&theme=sklone...
http://bugaga.net.ru/ege/rus/theory/?n=4
http://ru.wiktionary.org/wiki/%D0%9F%D1%80%D0%B8%D0%BB%D0%BE...
http://school-assistant.ru/?predmet=russian&theme=sklone...
http://bugaga.net.ru/ege/rus/theory/?n=4
по правилом русское языкам, вестимовидимо по этой фразе предполагается проверять лемматизатор

"мгу", кстати, по правилам русского языка надо лемматизировать к "мга"
(ищется известный токен, ближайший по расстоянию редактирования)имхо проще будет тут что-то по хачить, например, выбирать не просто расстояние левенштейна, а выбирать вариант лучший по языковой модели http://en.wikipedia.org/wiki/Language_model
языковую модель можно построить по какому-нибудь корпусу. википедию, например, скачать, или сайты твоей предметной области, или придумать самому откуда взять запросов/текстов по твоей тематике.
нормальный лемматизатор будет использовать сложнее и для каждого языка скорее всего будет свой, если и будет.
"мгу", кстати, по правилам русского языка надо лемматизировать к "мга""Минет" — "минуть".
Меня, раз уж пошли вопросы про такие случаи, волновало бы совсем другое.
Например, определение корня слова "вынуть."
Да и то же "кружку" тоже непонятно, как обрабатывать.
---
...Я работаю антинаучным аферистом...
Например, определение корня слова "вынуть."
Да и то же "кружку" тоже непонятно, как обрабатывать.
---
...Я работаю антинаучным аферистом...
Что-то все реализации, что я нахожу, делают только прямое преобразование - из именительного в другие падежи, а обратных я ещё не нашёл.
Может быть, при индексации "раскрывать" слово на множество термов? Но тогда будет пухнуть индекс.
Может быть, при индексации "раскрывать" слово на множество термов? Но тогда будет пухнуть индекс.
> Что-то все реализации, что я нахожу, делают только прямое преобразование -
> из именительного в другие падежи, а обратных я ещё не нашёл.
Я бы не удивлялся. Пример словоформы "кружку" очень хороший, кстати:
хорошо видно, какие возникают сложности при определении именительного падежа.
---
...Я работаю антинаучным аферистом...
> из именительного в другие падежи, а обратных я ещё не нашёл.
Я бы не удивлялся. Пример словоформы "кружку" очень хороший, кстати:
хорошо видно, какие возникают сложности при определении именительного падежа.
---
...Я работаю антинаучным аферистом...
$ echo вынуть кружку | ./mystem -nie utf-8
вынуть{вынимать=V,пе=инф,сов}
кружку{кружка=S,жен,неод=вин,ед|кружок=S,муж,неод=дат,ед}
1. Местный падеж не осилило.
2. Про "вынуть" задавался вопрос о корне слова, а не о неопределённой форме.
Хотя, да, за то, что смогло определить именительный падеж --- зачёт.
---
"Прогресс науки обратно пропорционален числу выходящих журналов."
2. Про "вынуть" задавался вопрос о корне слова, а не о неопределённой форме.
Хотя, да, за то, что смогло определить именительный падеж --- зачёт.
---
"Прогресс науки обратно пропорционален числу выходящих журналов."
о, вспомнил еще один хороший пример
echo "ип" | ./mystem -nie utf-8
ип{ипать=V,разг,обсц,несов=прош,ед,изъяв,муж}
Смех смехом, но есть, например, такие словоформы, как "вина" и "чайку".
И если не распознавать отделительный падеж, то простое
"Налей чайку зелёного, налей..." (Визбор, "Октябрь, Садовое кольцо")
и "Налей вина зелёного, налей..." (у Визбора --- "Налей винца зелёного...")
считаются неверными, а при попытке поправить превращаются в сюрреализм.
Причём для этого не нужно каких-то жаргонных слов и иноязычных заимствований.
---
"Французский знаете.
Делите.
Множите.
Склоняете чудно."
И если не распознавать отделительный падеж, то простое
"Налей чайку зелёного, налей..." (Визбор, "Октябрь, Садовое кольцо")
и "Налей вина зелёного, налей..." (у Визбора --- "Налей винца зелёного...")
считаются неверными, а при попытке поправить превращаются в сюрреализм.
Причём для этого не нужно каких-то жаргонных слов и иноязычных заимствований.
---
"Французский знаете.
Делите.
Множите.
Склоняете чудно."
скоро потребуется китайскийМогу утешить: в китайском нет морфологии.
И огорчить: мучений с токенизацией хватит за глаза
ип{ипать=VВот честно, когда добавлял в словарь - проверил, находилась именно такая форма, и именно в таком значении. Теперь бедные Индивидуальные Предприниматели страдают...
А с Гюльчатай прокол вышел, да.
1. Местный падеж не осилило.Где ты у "кружку" местный падеж нашёл?
На вот тебе и местный и партиальный:
echo 'чайку в шкафу' | ./mystem -nie utf-8
чайку{чайка=S,жен,од=вин,ед|чаек=S,муж,неод=дат,ед|=S,муж,неод=парт,ед|чайка=S,фам,муж,од=вин,ед}
в{в=PR=|в=S,сокр=им,ед|=S,сокр=им,мн|=S,сокр=род,ед|=S,сокр=род,мн|=S,сокр=дат,ед|=S,сокр=дат,мн|=S,сокр=вин,ед|=S,сокр=вин,мн|=S,сокр=твор,ед|=S,сокр=твор,мн|=S,сокр=пр,ед|=S,сокр=пр,мн}
шкафу{шкаф=S,муж,неод=дат,ед|=S,муж,неод=местн,ед}
> Где ты у "кружку" местный падеж нашёл?
Употребляется, точно.
---
"А я обучался азбуке с вывесок,
листая страницы железа и жести."
Употребляется, точно.
---
"А я обучался азбуке с вывесок,
листая страницы железа и жести."
Оставить комментарий
kill-still
Сейчас в качестве фильтра токенов для поисковых запросов использую алгоритм "Snowball". Всё работает замечательно, но при исправлении опечаток в окончании возникают артефакты в видекрушк->кружк. (ищется известный токен, ближайший по расстоянию редактирования) При этом при наличии окончания всё работает хорошо, т.к. я заменяю по вхождению:крушка->кружка,крушкой->кружкой. Посоветуйте мультиязычный алгоритм, который бы не отбрасывал окончания, как снежок, а нормализовывал их (кружкой->кружка). Для того, чтобы опечатки в окончании исправлялись правильно:крушк->кружка