Есть ли алгоритм, который говорит семантическую близость двух фраз

Если вы все пробовали, но это не помогло, вы должны перезапустить сервер. В моем случае я просто забыл перезапустить Tomcat после добавления javax.servlet.jsp.jstl-1.2.1.jar в lib.

63
задан btw0 15 September 2008 в 13:02
поделиться

7 ответов

<час>

Вы могли бы хотеть проверить данную статью:

подобие Предложения на основе семантических сетей и корпусной статистики (PDF)

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

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

С уважением,

Matt.

42
ответ дан ЯegDwight 7 November 2019 в 12:43
поделиться

Существует короткое и длинный ответ на это.

короткий ответ:

Использование WordNet:: пакет Perl Подобия . Если Perl не является Вашим предпочтительным языком, проверьте страница проекта WordNet в Принстоне или Google для библиотеки-оболочки.

длинный ответ:

Определение подобия слова является сложной проблемой, и исследование является все еще очень горячим в этой области. Для вычисления подобия Вам нужен соответствующий represenation значение из слова. Но каково было бы представление значения, скажем, 'стула'? На самом деле, что точное значение 'стула'? Если Вы хорошо подумаете об этом, это скрутит Ваш ум, Вы немного сойдете с ума, и наконец займетесь карьерой исследования в Философии или Компьютерной лингвистике для нахождения truthв „ў. И философы и лингвисты попытались придумать ответ в течение буквально тысяч лет, и в поле зрения нет никакого конца.

Так, если Вы интересуетесь исследованием этой проблемы, немного более всесторонней, я настоятельно рекомендую Главу 20.7 чтения в Обработка речи и Обработка языка Jurafsky и Martin, часть из которого доступна до Google Books . Это дает очень хороший обзор современного состояния дистрибутивных методов, которые используют статистику совместной встречаемости слова для определения меры для подобия слова. Вы вряд ли найдете библиотеки, реализовывая их, как бы то ни было.

33
ответ дан nfelger 7 November 2019 в 12:43
поделиться

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

5
ответ дан jonfm 7 November 2019 в 12:43
поделиться

Одно простое решение должно использовать скалярное произведение символьных n-граммных векторов. Это устойчиво по упорядочиванию изменений (который много метрик расстояния редактирования не), и получает много проблем вокруг стемминга. Это также предотвращает полную AI проблему полного семантического понимания.

Для вычисления n-граммного вектора просто выберите значение n (скажите, 3), и хешируйте каждую 3 последовательности слов во фразе в вектор. Нормализуйте вектор к единичной длине, затем возьмите скалярное произведение различных векторов для обнаружения подобия.

Этот подход был описан в Дж. Mitchell и M. Lapata, “Composition в Дистрибутивных Моделях Семантики, ” Когнитивистика, издание 34, № 8, стр 1388†“1429, ноябрь 2010., DOI 10.1111/j.1551-6709.2010.01106.x

3
ответ дан helt 7 November 2019 в 12:43
поделиться

Это требует, чтобы Ваш алгоритм на самом деле знал что Ваш разговор о. Это может быть сделано в некоторой элементарной форме, просто сравнив слова и ища синонимы и т.д., но любой вид точного результата потребовал бы некоторой формы аналитики.

1
ответ дан Rik 7 November 2019 в 12:43
поделиться

Вы могли бы хотеть зарегистрироваться проект WordNet в Принстонском университете. Один возможный подход к этому был бы к первому показу каждой фразой через список стоп-слова (для удаления "общих" слов такой как, "к", и т.д.) Тогда для каждого из остающихся слов в каждой фразе, Вы могли вычислить семантическое "подобие" между каждым из слов в другой фразе с помощью меры по расстоянию на основе WordNet. Мера по расстоянию могла быть чем-то как: количество дуг необходимо пройти в WordNet для получения от word1 до word2.

Жаль это - довольно высокий уровень. Я, очевидно, никогда не пробовал это. Просто быстрая мысль.

7
ответ дан Chuck Wooters 7 November 2019 в 12:43
поделиться

Я бы посмотрел на статистические методы, которые учитывают вероятность появления каждого слова в предложении. Это позволит вам придавать меньшее значение популярным словам, таким как «и», «или», «the», и придавать большее значение словам, которые появляются менее регулярно и, следовательно, являются лучшим отличительным фактором. Например, если у вас есть два предложения:

1) Алгоритм Смита-Уотермана дает вам меру сходства между двумя строками. 2) Мы рассмотрели алгоритм Смита-Уотермана и пришли к выводу, что он достаточно хорош для нашего проекта.

Тот факт, что в этих двух предложениях используются слова «кузнец-уотермен» и слова «алгоритмы» (которые встречаются не так часто, как «и», «или» и т. Д.), Позволит вам сказать, что эти два предложения действительно могут говорить об одной и той же теме.

Подводя итоги, предлагаю вам взглянуть на: 1) меры сходства строк; 2) Статистические методы

Надеюсь, это поможет.

2
ответ дан 24 November 2019 в 16:23
поделиться
Другие вопросы по тегам:

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