1 Вопрос: Найти самое ПОХОЖЕЕ предложение / строку для ссылки в текстовом корпусе в Python

вопрос создан в Mon, Mar 18, 2019 12:00 AM

Моя цель очень проста: у меня есть набор строк или предложение, и я хочу найти наиболее похожий в текстовом корпусе.

Например, у меня есть следующий текстовый корпус: «Передняя часть библиотеки украшена росписью Word of Life, разработанной художником Миллардом Шитсом.»

И я хотел бы найти подстроку исходного корпуса, которая наиболее похожа на: «фасад библиотеки окрашен»

Итак, что я должен получить в результате: "передняя часть библиотеки украшена"

Единственное, что я придумал, - это разделить оригинальное предложение на подстроки переменной длины (например, на подстроки из 3,4,5 строк), а затем использовать что-то вроде string.similarity(substring) из модуля Python spacy для оценки сходства мой целевой текст со всеми подстроками, а затем оставьте тот, у которого самое высокое значение.

Это кажется довольно неэффективным методом. Что я могу сделать лучше?

    
0
1 ответ                              1                         

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

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

Если вы хотите что-то, что работает достаточно быстро из коробки для английского языка, одно предложение - это terp, который был разработан для оценки MT, но показал, что он хорошо работает для обнаружения перефразирования:

https://github.com/snover/terp

Большинство методов настроены для сравнения двух предложений, поэтому это не учитывает ваши потенциальные совпадения с частичными предложениями. Может быть, имеет смысл найти наиболее похожее предложение, а затем искать подстроки в этом предложении, которые лучше соответствуют предложению в целом?

    
1
2019-03-19 12: 32: 51Z
  1. Спасибо за ваш отзыв, я посмотрю на terp. В то же время я также рассматриваю gensim для предложения к предложению сходство. Кроме того, я не знал, что сходство spacy основано на усреднении векторов слов, спасибо за указание на это.
    2019-03-19 15: 23: 27Z
источник размещен Вот