我有两个数据集。
一是假设维修说明

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;

它像运算符(operator)一样使用声音工作,我感到很兴奋。但是当我尝试这个例如
我改为“键盘组件替换”,而不是“电子键盘替换”。
它没有识别出它给了我空白数据集。我也尝试过“比较”,但未能实现。我看到了一些名称和电子邮件ID更正或匹配示例,因此尝试了这种方法。但是,也可以使用这些功能来对相似短语进行匹配吗?还有其他解决方案可以实现这一目标吗?通常,我的比赛将是重新排列的单词或多余的单词或较短的单词(例如替换替换)

最佳答案

我也设法使用comped在名称和地址上做类似的事情!
创建一个数据集,其中包含您需要从初始表中扫描的字段,以便将要扫描的每条记录乘以您需要匹配的修复类型
因此,您最终会遇到这样的情况(抱歉,无法在此处显示表格):
-字段1-字段2:
更换电子组件键盘-更换电子键盘
更换电子组件键盘-更换显示器组件
电气组件键盘更换-鼠标组件
电气组件键盘更换-电线更换
电气组件键盘更换-PIN部分

从那里,您在这些too字段上运行comping,它将为您尝试获取的所有单词的匹配提供数字输出

compged(string1, string2);

然后对您的组合结果进行排名,然后对该表进行查询,以仅获取组合值最低的记录

请注意,这并不意味着您的两个句子将是真正的匹配,但只会保留最有可能匹配的那些!

here is the doc on compged

关于sas - 寻找最相似的词组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50531350/

10-13 05:57