172 похожих чатов

О, а дайте-как я тоже спрошу, пока @obartunov здесь (если

кто знает — тоже не стесняйтесь). ;)
Какая сейчас ситуация с русскими словарями для FTS, где брать самые адекватные?
Есть ли какое-то [техническое] описание того, какими они должны быть и т.п., кроме документации PostgreSQL?

20 ответов

38 просмотров

На гитхабе postgrespro есть две репы со словарями.

Yaroslav-Schekin Автор вопроса
Oleg Bartunov
На гитхабе postgrespro есть две репы со словарями.

Спасибо, поищу! А по второму вопросу есть что-то?

Oleg Bartunov
На гитхабе postgrespro есть две репы со словарями.

Описание стеммера читайте snowball, описание ispell/hunspell тоже есть.

Yaroslav-Schekin Автор вопроса
Oleg Bartunov
Интересует описание апи ?

Тоже интересует, да. Эти? https://github.com/postgrespro/hunspell_dicts/tree/master/hunspell_ru_ru Это, насколько я вижу, старый словарь, работы ещё Александра Лебедева, так? https://github.com/postgrespro/hunspell_dicts/tree/master/hunspell_ru_ru_aot А это — старая версия от AOT group (из LibreOffice), да? И вот это? https://github.com/postgrespro/rusmorph Но вопрос-то у меня был, скорее, по содержанию словарей. Вот к примеру, должны ли они быть в идеале максимально полны? Т.е. должны они включать все устаревшие, диалектные и специальные термины — которые, если попадаются в современном тексте, почти наверняка являются тупо опечатками общеупотребительных слов? Так же и с самими распространёнными очепятками, кстати. ;) Т.е. меня интересует, какой подход к наполнению словарей именно для FTS — правильный?

Yaroslav Schekin
Тоже интересует, да. Эти? https://github.com/postg...

По словарям ты все правильно написал - Лебедев и аот для словоформ.

Oleg Bartunov
По словарям ты все правильно написал - Лебедев и а...

Наполнение словаря - это философский выбор. Мое мнение, что нужно сделать словарь на основе n-gram переменной длины и индексировать всё, а при поиске задавать степень соответствия.

Yaroslav-Schekin Автор вопроса
Oleg Bartunov
Наполнение словаря - это философский выбор. Мое мн...

Да это же не словарь, в таком случае... нет? Т.е. сгенерируйте все сочетания букв длины 1, 2, 3... N — и вот он "словарь". Или я не понял, что Вы имели в виду?

Yaroslav Schekin
Да это же не словарь, в таком случае... нет? Т.е. ...

Словарь - это любая программа, которая из входа что-то генерит, то есть для каждого слова можно выдать упорядоченный список ngram

Oleg Bartunov
Наполнение словаря - это философский выбор. Мое мн...

Но специфические словари терминов конечно тоже нужны.

Yaroslav-Schekin Автор вопроса
Oleg Bartunov
Словарь - это любая программа, которая из входа чт...

Нет, подождите. :) Это обычные n-gramms, такое можно "на коленке запилить" в PostgreSQL хоть сейчас... но к настоящим орфографическим словарям это не имеет никакого отношения... Т.е. Вы имеете в виду, что настоящие словари не нужны? > Но специфические словари терминов конечно тоже нужны. Хмм... но зачем, учитывая вышенаписанное?

Yaroslav Schekin
Нет, подождите. :) Это обычные n-gramms, такое мож...

Ярослав, просто все зависит от задачи. Я не видел моральной идеального морфологического словаря. Мы проектировали fts как возможность матчинга запроса и документов с возможностью ранжирования, конкретную реализацию со словарями и конфигурациями можно рассматривать как одну из возможных. На самом деле основное это два типа данных и оператор для них, дальше все можно делать руками, т.е., самому делать tsquery, tsvector, хоть во внешнем клиенте.

Yaroslav-Schekin Автор вопроса
Oleg Bartunov
Ярослав, просто все зависит от задачи. Я не видел ...

Это я всё умозрительно понимаю (реального опыта с FTS у меня мало), но мне кажется, что подход с n-граммами в реальности будет плох. Вот для примера (первое, что пришло в голову): при поиске по слову "меч" так можно выдавать "мечусь" (словоформу "далёкого" по n-граммам "метаться"), а вот "брошь" и "брошу" — почти одно и тоже. Так вот меня как раз интересует, какими должны быть словари, чтобы "русский" FTS был качественным на практике.

Yaroslav Schekin
Это я всё умозрительно понимаю (реального опыта с ...

> Так вот меня как раз интересует, какими должны быть словари, чтобы "русский" FTS был качественным на практике. Тогда нужно стремиться к полноте словарей, но проблему омонимии они не решат - Путин, путин, Путина, путина ? Я не в курсе, кто-нибудь вообще занимается поддержкой машинной морфологии русского языка, имеется ввиду открытой. Я вижу только aot.ru

Yaroslav-Schekin Автор вопроса
Oleg Bartunov
> Так вот меня как раз интересует, какими должны б...

> Тогда нужно стремиться к полноте словарей, Почему нужно-то? Вот то, что я написал про совпадающие с "левыми" словами опечатки — как в идеале должен к ним относиться FTS? > но проблему омонимии они не решат - Путин, путин, Путина, путина ? Ну так это реальная проблема (в самом языке), а не проблема качества словарей. > то-нибудь вообще занимается поддержкой машинной морфологии русского языка, имеется ввиду открытой. А никто, насколько я знаю (по крайней мере, я больше вообще не нашёл ни одного активного проекта). :( Причём то, что делает AOT, мне крайне не нравится — я вижу, что туда просто внесено много опечаток; кроме того, словарь набит топонимами, фамилиями, диалектизмами, устаревшими словами и "редкими" терминами. Даже для его, по идее, основной цели (проверки правописания) это всё совсем не хорошо.

Yaroslav-Schekin Автор вопроса
Oleg Bartunov
> Так вот меня как раз интересует, какими должны б...

А, и ещё про этот "прекрасный" словарь — заметно, что он сделан по принципу "да ладно, и так сойдёт!" — к примеру, нередко вместо основы и правил словоизменения сделано вот так (реальный пример): аркаден аркадна аркадная аркадно аркадного аркадное аркадной аркадном аркадному аркадную аркадны аркадные аркадный аркадным аркадными аркадных Т.е. для проверки правописания это сойдёт, а вот для FTS получается, что каждая форма здесь — основа, т.е. "аркадному" и "аркадный" — это совершенно разные слова.

Yaroslav Schekin
А, и ещё про этот "прекрасный" словарь — заметно, ...

Мы взяли ispell-кие словари для морфологии от бедности. Буду рад, если кто возьмется за создание нормального морфологического словаря.

Yaroslav-Schekin Автор вопроса
Oleg Bartunov
Мы взяли ispell-кие словари для морфологии от бедн...

А брать-то больше почти и нечего... Есть, впрочем, существенно доработанный/переработанный (но тоже уже брошенный, к сожалению) Александром Клюквиным словарь Лебедева (и он всё ещё качественнее, чем "обновляемый" от AOT group, по моему нескромному мнению ;) ). Но на этом и всё. > Буду рад, если кто возьмется за создание нормального морфологического словаря. Да, неплохо бы... только это большая работа, пойди найди энтузиастов. ;) А вообще, опять-таки, AOT group тихо и незаметно "подложила свинью" всем русскоязычным пользователям проверки правописания и FTS (потому что почти все берут их словари).

Yaroslav-Schekin Автор вопроса
Oleg Bartunov
Мы взяли ispell-кие словари для морфологии от бедн...

И всё-таки мне любопытно, какими для "идеального" FTS должны быть ответы на вопросы про опечатки и "левые" (редкие и т.п., см. выше) слова. ;)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта