如何在可能是拼写错误的单词的字符串中搜索单词

时间:2019-04-11 22:20:31

标签: sas

我正在SAS数据集中寻找特定的雇主。该数据集尚未进行拼写检查,因此,如果我正在寻找Univ,可以将其输入为大学,大学,大学...

我尝试扫描,计算匹配的字母“包含”。这些是工作,但我仍然缺少一些。

proc sql;   创建表SpecificEmployers为      选择 *          ,如果雇主包含“ Univ”然后是“ Y”              否则'N'结尾为Emp        来自所有雇主  ; quit;

2 个答案:

答案 0 :(得分:0)

在这种情况下,建议不要搜索最常见的单个字符,例如U,N,V等,而不是搜索子字符串。然后,您只能保留那些具有所有这些字符可用的值。例如-我使用了findc函数来搜索具有U,N和V的字符串

data have;
input string $15.;
datalines;
uNiverstY
UNVERSTy
college
univercity
school
schools
UNIVERSITY
Uversity
unvarcity
school123
;
run;

proc sql;
  select string from have
  where findc(upcase(string),'U')>=1
    and findc(upcase(string),'N')>=1
    and findc(upcase(string),'V')>=1;
  quit;

proc print data=want; run;

使用大写字母也可以使您的任务轻松..因此,您不必担心这种情况。您可以根据需要设置任意数量的条件

答案 1 :(得分:0)

您应该研究一些编辑距离功能:

http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a002206133.htm

http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a002206137.htm

一种方法是遍历雇主名称中的每个单词,并查看与字符串university相比,单个单词中的任何一个单词的编辑距离是否低于某个阈值。