Я ищу быстрое решение в R для определения расстояния редактирования текста на уровне слова между двумя предложениями. В частности, я хочу определить минимальное количество дополнений, замещений или исключений слов, чтобы преобразовать предложение A в предложение B. Например, если предложение A является «очень хорошим автомобилем», а предложение B - «красивый красный автомобиль», результат должно быть 2 (1 удаление и 1 дополнение).Расстояние между двумя предложениями на уровне слова в R
Я знаю, что существуют существующие решения в R для расстояния редактирования уровня символа (например, родные adist()
и stringdist()
из пакета 'stringdist'), но я не нашел ни одного словарного уровня.
К сожалению, пересечение двух предложений не то же самое, как расстояние на уровне слова. Например, если str1 <- «этот красный автомобиль имеет низкое потребление», а str2 <- «этот красивый красный автомобиль имеет низкий пробег» Пересечение этих двух предложений составляет 5, а расстояние между словами - 2 (1 замещение и 1 дополнение) – JackONeill
Это правда. Однако пересечение и функция помогают: inter <- intersect (my_function (str1, ""), my_function (str2, "")) my_function (str1, '') [which (! (My_function (str1, '') % in% inter))] дает '> [1]« потребление »и ' my_function (str2, '') [который (! (my_function (str2, '')% in% inter))] дает '> [1]« nice »« пробег »' Таким образом, вы можете иметь расстояние 'max (length (my_function (str1, '') [который (! (My_function (str1, '')% in% inter)) ]), length (my_function (str2, '') [которая (! (my_function (str2, '')% in% inter))])) 'которая равна '> [1] 2' - – JARO