Поиск наиболее похожих фраз - PullRequest
0 голосов
/ 25 мая 2018

У меня есть два набора данных.Предполагается, что описание ремонта

Electric Component keyboard replacement

Второй набор данных - это все описания ремонта для всех клиентов, у которых была предыдущая фраза ремонта, а позже было некоторое описание ремонта.Например:

Electric Keyboard replace
Monitor Component Replacement
Mouse component
Wire Replacement
PIN part

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

DATA NAME;
INFILE DATALINES DSD; 
length FIRST $ 1000;
INPUT FIRST $;
DATALINES;
Electric Component keyboard replacement
;

DATA COMPONENT;
INFILE DATALINES DSD; 
length FIRST_B $ 1000;
INPUT FIRST_B $;
DATALINES;
Electric Keyboard replace
Monitor Component Replacement
Mouse component
Wire Replacement
PIN part
;

PROC SQL;
CREATE TABLE Possible_Matches AS
SELECT *
FROM Name AS n, COMPONENT AS b
WHERE (n.FIRST  =* b.FIRST_B);
QUIT;

Он работал, используя звук как оператор, я был взволнован.Но когда я попробовал это, например, где я изменил на «замена компонента клавиатуры» вместо «Замена электрической клавиатуры».Это не идентифицировало это дало мне пустой набор данных.Я тоже пытался "сравнить", но не смог достичь.Я попробовал этот подход, так как видел несколько примеров исправления или соответствия имен и идентификаторов электронной почты.Но можно ли подобрать фразы similair и с помощью этих функций?Есть ли другое решение для достижения этой цели?Обычно мои совпадения будут переставлены словами или дополнительными словами или более короткими словами (например, замена для замены)

1 Ответ

0 голосов
/ 03 октября 2018

Мне удалось сделать что-то похожее с именем и адресом, используя compged!Создайте набор данных с полем, которое необходимо отсканировать, из исходной таблицы, чтобы у вас были все сканируемые записи, умноженные на типы восстановления, которые вам необходимо сопоставить. Таким образом, вы получите что-то вроде этого (извините, не могу сделать таблицу визуальной здесь):- Поле 1 - Поле 2: Замена клавиатуры электрического компонента - Замена электрической клавиатуры Замена клавиатуры электрического компонента - Замена клавиатуры монитора электрического компонента - Замена мыши - Замена клавиатуры электрического компонента - Замена провода Замена клавиатуры электрического компонента - часть PIN

Оттуда вы запустите compged на этих полях, и он даст вам выходной номер для совпадения всех слов, которые вы пытаетесь получить

compged(string1, string2);

Затем оцените ваш результат из compged и затемвы делаете запрос к этой таблице, чтобы получить только запись с наименьшим скомпонованным значением

Обратите внимание, что это не означает, что ваши 2 предложения будут соответствовать друг другу, но в них останутся только те, кто наиболеескорее всего, для совпадения!

вот документ по скомпонованному

...