我有两个数据集。一种是假设修复描述
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;它使用类似于声音的操作符工作,我很兴奋。但是当我试着这样做的时候,比如我换成了“键盘部件替换”而不是“电子键盘替换”。它没有识别出它给了我空白的数据集。我也尝试了“比较”,但不能实现。我尝试了这种方法,因为我看到了一些名称和电子邮件id更正或匹配的示例。但是,相似的短语也可以使用这些函数进行匹配吗?有没有其他的解决方案来实现这一点?正常情况下,我的匹配将是重新排列的单词或额外的单词或较短的单词(如替换以替换)
发布于 2018-10-03 19:52:30
我也设法用compged做了一些与name和adress类似的事情!创建一个数据集,其中包含需要从初始表中扫描的字段,以便您拥有要扫描的每条记录乘以需要匹配的维修类型,因此最终结果如下所示(很抱歉,此处不能显示表格):PIN1-字段2:电气组件键盘更换-电子键盘更换电气组件键盘更换-显示器组件更换电气组件键盘更换-鼠标组件电气组件键盘更换-电线更换电气组件键盘更换- -Field部件
在那里,您可以对这些too字段运行compged,它将为您提供一个数字输出,用于匹配您正在尝试获取的所有单词
compged(string1, string2);然后对compged的结果进行排名,然后对该表进行查询,以仅获取具有最低compged值的记录
请注意,这并不意味着你的两句话将真正匹配,但它将只保留那些最有可能匹配的句子!
https://stackoverflow.com/questions/50531350
复制相似问题