LINUX.ORG.RU

Сравнение коротких текстов по смыслу

 , ,


1

4

Кто что посоветует по поводу сравнения коротких текстов, даже не текстов, а коротких предложений исключительно на русском языке. Пример: «у меня есть машина» и «я имею личное авто». Метод шинглов тут не прокатит.

Как ни прискорбно, только армия китайцев.

Наиболее близкое к тому, что ты хочешь - это ПРОЛОГ.

schizoid ★★★
()

Делать базу синонимов. Пытаться разобрать предложение на части: сказуемое, подлежащее и т.п. После чего сравнивать части с помощью базы синонимов.
Где-то там наверное еще не помешает приводить слова в «инфинитив».

anonymous
()

Можно составить граф связанности слов по смыслу, синонимы например очень близки по смыслу, похожие слова дальше, остальные совсем далеко. Потом для двух текстов берем слова как вершины в этом графе и ищем расстояния до слов другого текста. Для каждого слова находим ближайшее к нему слово и фиксируем расстояние. Похожесть текстов в итоге оцениваем как среднее арифметическое этих расстояний или другим похожим образом. Естественно слова нормализуются, всякие предлоги выкидываются. Думаю работать должно, хотя, конечно, будут всякие казусы, но для первичной оценки подойдет. Правда со словарем синонимов и похожих слов вероятно будут сложности.

Legioner ★★★★★
()

Максимум, что можно сегодня придумать - Семантическая_сеть, с ведением базы синонимов. Далее, сравнение графов. Тут же, в возне с синонимами и местоимениями, столкнешься со смысловыми контекстами. Их придется упрощать или игнорировать, или выстраивать и учитывать новые уровни абстракций в виде смысловых контекстов (регноз, диагноз, прогноз), что чревато еще большими заморочками с графами и многоэтажными абстракциями над ними. Отдельные приколы ждут тебя, когда обнаружишь смысловые определения в виде замыканий (сленг, жаргон и прочие устойчивые фантазии, заблуждения).

anonymous
()
Ответ на: комментарий от anonymous

Делать базу синонимов. Пытаться разобрать предложение на части: сказуемое, подлежащее и т.п. После чего сравнивать части с помощью базы синонимов.

А почему ты решил, что не бывает синонимичных синтагм, а только слова? А их в базу уже не загонишь... :D

Где-то там наверное еще не помешает приводить слова в «инфинитив».

Сказанул. Узкий специалист detected. :D

ak372771
()

Это очень сложная задача. Решается методами AI. Оборванные фрагменты этих методов были упомянуты в нескольких постах. Наскоком за вечер, запихнув что-то в какую-нибудь БД не решить, если AI не освоено хотя бы на уровне книги Russel, Norvig «Artificial Intelligence: A Modern Approach».

ak372771
()

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

Если совсем быстро и дешево, то можно сделать простую формальную грамматику + стеммер + базу синонимов. Попадет в шаблон — отлично. Не попадет — будет результат вроде «в обоих приложениях упоминаются я и автомобили, а во втором — еще что-то личное». Или же «никакого слова не понял». Все это уже есть готовое, если поискать.

Ты бы сказал, где это будет применяться, тогда советы бы были более по существу.

proud_anon ★★★★★
()
Ответ на: комментарий от proud_anon

Задача стоит следующая, пользователи заполняют свои интересы, ясно что интерес к чему то описывается коротким предложением: «я играю на гитаре», «я умею играть на гитаре», «игра на гитаре» нужно определить чем занимаются сотрудники в свободное время, а для этого нужно избавится от дубликатов.

glasscube
() автор топика
Ответ на: комментарий от NikolaSh

Да смотрел я уже на него, но что то документации как то не нашел хорошей

glasscube
() автор топика
Ответ на: комментарий от gorky

Спасибо, но морфологический разбор решает часть задачи. То есть теперь мы можем представить предложение как список слов в нормальной форме, но не знаю можно ли так представить текст, может быть потеря информации?

glasscube
() автор топика

1 слова нормализуются

2 все зависит сколько таких текстов

psv1967 ★★★★★
()
Ответ на: комментарий от glasscube

Есть wordnet - семантический словарь для английского языка. Его русский вариант пока не доделан. Поэтому для решения твоей задачи придется пойти на небольшую хитрость.

Выдели из большого количества предложений об интересах пользователей существительные и глаголы и отсортируй их по частоте использования. Самые частые слова переведи на английский язык и с помощью wordneta найди связанные с ними слова. Связанные слова переведи на русский и используй их для группировки существительных и глаголов по областям интересов. И вуаля! В первом приближении твоя задача решена.

gorky ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.