powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Начальная форма слова
22 сообщений из 47, страница 2 из 2
Начальная форма слова
    #40119560
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ы2
_avz, эта проблема называется «синтаксическая омонимия», без контекста не решается.

это понятно.
Я имел в виду то, что в случае 22408739 однозначное решение есть,
но по стему (метод, предложенный в 22408723 ) не находится
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119571
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я там в тесте ещё одну ошибку допускаю из за которой последнее слово в строке неверно стеммингуется.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119572
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ы2,

Да я согласен. Не подходит.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119596
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, худо-бедно на постгресе заработало
как сконфигурировал:
1. скачал словарь https://github.com/postgrespro/hunspell_dicts/tree/master/hunspell_ru_ru
2. скопировал в папку pg SHAREDIR\tsearch_data
3. создал словарь
Код: sql
1.
2.
3.
4.
5.
6.
CREATE TEXT SEARCH DICTIONARY ru_dic (
   TEMPLATE = ispell,
   dictfile = 'ru_ru',
   afffile = 'ru_ru',
   stopwords='russian'
);


4. создал конфигурацию полнотекстового поиска:
Код: sql
1.
2.
CREATE TEXT SEARCH CONFIGURATION ru_cfg (    PARSER = default);
ALTER TEXT SEARCH CONFIGURATION ru_cfg    ADD MAPPING FOR word WITH  ru_dic


5.запрос
Код: sql
1.
select ts_lexize('ru_dic2', 'души')


выдаёт
{душа,душить}
т.е., или про "душ" словарь не в курсе, или...
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119602
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ы2
Словарь для hunspell от PostgresPro делает все это за исключением выбора правильной леммы (словарной формы) в случае таких форм, как «души» (мн. ч. от «душа» или повел. накл. от «душить»?).

Ну это задача совершенно другого уровня сложности, т.к. между "души -> душа" и "души -> душить" без анализа контекста выбрать невозможно. Только выдать все возможные варианты.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119603
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хватает и других косяков:
Код: sql
1.
select ts_lexize('ru_dic2', 'пей') 


{пей} - хотя должно быть 'пить'
шей-{шей,шея}
беги-{беги,бег}
хотя
гляди-{глядеть}, верно

и, судя по всему, ещё много чего вскроется по ходу тестирования :)
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119609
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz, ты выкопал себе могилу

Ну будешь ближайшие пол-года заниматься морфологией русского языка.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119610
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
_avz, ты выкопал себе могилу

Ну будешь ближайшие пол-года заниматься морфологией русского языка.

Возможно, автору следовало бы начать с рассказа для чего ему все это нужно. Но на скуле это не принято. :))
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119612
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat,
для сравнения двух текстов
выдать слова, которые есть в одном, но отсутствуют в другом
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119613
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz
выдать слова, которые есть в одном, но отсутствуют в другом

Так а зачем для этого именно лематизация? Мне кажется что и стемминга должно хватить.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119615
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz
fkthat,
для сравнения двух текстов
выдать слова, которые есть в одном, но отсутствуют в другом

Господин выше правильно по тексту сказал. Что для анализа слов ЯЗЫКа нам нужно больше контекста.

А так получается

Код: sql
1.
Косил косой косой косой



и вот ищи где тут глагол и существительное в падежах.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119617
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Так а зачем для этого именно лематизация? Мне кажется что и стемминга должно хватить.

'душили' выдаст стем 'душ'
а лемма выдаёт 'душить'
всё же лучше

mayton

А так получается
Код: sql
1.
Косил косой косой косой


и вот ищи где тут глагол и существительное в падежах.


здесь уже приходится смириться с нестопроцентным качеством анализа,
в семантику я точно не полезу
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119654
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в машин-лёрнинге наверное решали такие задачи?
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119656
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz
fkthat
Так а зачем для этого именно лематизация? Мне кажется что и стемминга должно хватить.

'душили' выдаст стем 'душ'
а лемма выдаёт 'душить'
всё же лучше

mayton

А так получается
Код: sql
1.
Косил косой косой косой


и вот ищи где тут глагол и существительное в падежах.


здесь уже приходится смириться с нестопроцентным качеством анализа,
в семантику я точно не полезу

Если тебе нужен критерий "близости" двух документов то может быть не надо вообще раскладывать на национальные языки.

Считай расстояние Дамерау Левенштейна между всеми словами. Есть стандартная функция в apache.commons. Если расстояние
допустим меньше 1 или 2 то считай одним словом. Тогда осталось посчитать просто % таких слов в двух документах.

Метрика грубая. Неязыковая. Но достаточная чтобы просто группировать документы в кучки.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119657
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes
в машин-лёрнинге наверное решали такие задачи?
если ко мне вопрос, то нет.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40119659
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Если тебе нужен критерий "близости" двух документов то может быть не надо вообще раскладывать на национальные языки.

Считай расстояние Дамерау Левенштейна между всеми словами. Есть стандартная функция в apache.commons. Если расстояние
допустим меньше 1 или 2 то считай одним словом. Тогда осталось посчитать просто % таких слов в двух документах.

Метрика грубая. Неязыковая. Но достаточная чтобы просто группировать документы в кучки.

В моём случае результат устроил.
Уже в разы лучше, чем когда я сравнивал тупо по словам.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40123163
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_avz
mayton

Если тебе нужен критерий "близости" двух документов то может быть не надо вообще раскладывать на национальные языки.

Считай расстояние Дамерау Левенштейна между всеми словами. Есть стандартная функция в apache.commons. Если расстояние
допустим меньше 1 или 2 то считай одним словом. Тогда осталось посчитать просто % таких слов в двух документах.

Метрика грубая. Неязыковая. Но достаточная чтобы просто группировать документы в кучки.

В моём случае результат устроил.
Уже в разы лучше, чем когда я сравнивал тупо по словам.


То есть так хотелось чуда, а его нету

Поставьте себе SQL Server какой-нибудь в минимальной версии у него есть fts* функции, которые выдают найденные слова указанного языка. Эту же фигню можете использовать для сравнения двух текстов. Но помните - ваша задача не решается за пару дней и с уровнем знаний "хеллоу ворлд". Кина не будет, расслабьтесь :-)
...
Рейтинг: 0 / 0
Начальная форма слова
    #40123281
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
моя задача решилась, так-то :)
...
Рейтинг: 0 / 0
Начальная форма слова
    #40123439
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забил в базу 100500 слов?
...
Рейтинг: 0 / 0
Начальная форма слова
    #40123503
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Хватило той последовательности шагов, что я изложил выше.
Можно сказать, это решение вопроса. Очень простое.
Неидеальное, но достаточное.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40123504
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В чём неидеальность - список слов, который выдаётся в результате сравнения текстов, чуть больше, чем должен.
Например, слово "пей" будет считаться отличным от слова "пил", и будет включено, хотя, по идее, это одно и то же слово.
Но основная масса словоформ отфильтровывается.
Меня устраивает: в таких нечётких задачах ожидать чего-то большего - странно.
...
Рейтинг: 0 / 0
Начальная форма слова
    #40123506
Фотография _avz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно, от анализатора невозможно ожидать и понимания, что, например, слово "душа" в тексте 2 использовано в ином смысле, чем в тексте 1, и должно быть включено в список.

Выскажу предположение, что даже с универсальным ИИ такие вещи не решаемы на 100%
(Когда даже ЕИ может ошибиться :)
Контекст может скрываться сколь угодно далеко за уровнем самого текста.
...
Рейтинг: 0 / 0
22 сообщений из 47, страница 2 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Начальная форма слова
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]