Sas将字符串拆分为单词,通过短语之间的常用单词数查找相似的短语

Sas将字符串拆分为单词,通过短语之间的常用单词数查找相似的短语,sas,Sas,理想情况下,我正在努力寻找类似的短语。我在一个数据集中有两个短语,每个短语最多5-6个单词。我使用complev、compged等模糊匹配,因为它主要是字符串匹配,有时我无法通过阅读短语来实现匹配。这些短语没有拼写错误,但有时会缩短单词,如替换替换等,并重新排列单词,如:电子元件键盘替换和键盘内部元件替换。如以下示例所示: DATA COMPONENT; infile datalines delimiter=','; length FIRST $ 1000 FIRST_B $ 1000;

理想情况下,我正在努力寻找类似的短语。我在一个数据集中有两个短语,每个短语最多5-6个单词。我使用complev、compged等模糊匹配,因为它主要是字符串匹配,有时我无法通过阅读短语来实现匹配。这些短语没有拼写错误,但有时会缩短单词,如替换替换等,并重新排列单词,如:电子元件键盘替换和键盘内部元件替换。如以下示例所示:

 DATA COMPONENT;
 infile datalines delimiter=','; 
 length FIRST $ 1000 FIRST_B $ 1000;
 INPUT FIRST $ FIRST_B $;
 DATALINES;
Electric Component keyboard replacement, Keyboard inward component replace
Electric Component keyboard replacement, Monitor Component Replacement
Electric Component keyboard replacement, Mouse component
Electric Component keyboard replacement, Wire Replacement
Electric Component keyboard replacement, PIN part
;

 DATA Compged;
 SET COMPONENT;
 CALL COMPCOST('SWAP=', 5, 'P=', 0, 'INS=', 10,'DEL=',10,'APPEND=',5);
 First_COMPGED=COMPGED(FIRST, FIRST_B, 'iln');
 RUN;

 PROC SORT DATA= Compged;
 BY  First_COMPGED;
 RUN;
由于这一点本身并不匹配,我想使用另一个因素,试图找到相同的词被用作另一个因素。因此,我们要将其拆分为文字并进行比较。出现多少常用词,并将其作为一个附加因素添加

 /* Tried this approach*/

proc iml;
s = "Introduction,to SAS/IML... programming!";
delims = ' ,.!'; 
n = countw(s, delims);  
 words = scan(s, 1:n, delims);  /* pass parameter vector: create vector of 
 words */
 print words; 
不确定如何在当前表中实现此功能,以从短语first和first_b中获取单词和单词_b。
对于上面的示例,请建议是否有其他方法来实现它?

您希望实现的输出是什么您可以使用交叉连接来检查,但是这些类型的检查可能会占用大量的计算时间。您可以在Google、Communities.sas.com或lexjansen.com上使用“模糊匹配”搜索许多选项和示例。@Kiran我正在寻找电子元件键盘替换,键盘内部元件替换为最低分数,建议最佳匹配