【发布时间】:2015-03-02 09:07:16
【问题描述】:
我应用了 tm 包中的各种清理功能,例如删除标点符号、数字、特殊字符、常用英文单词等,并得到如下所示的数据框。请记住,我没有可以依赖的主键,例如 cust_id 或 account_number
sno names
001 SIRIS BLACK
002 JOHN DOE
003 STEPHEN HRYY
004 SIRIUS BLACK
005 SIRUS BLACK
006 JON DOE
007 STEPHEN HARRY
008 STIPHEN HURRY
009 JHN DOE
看上面的数据,我真的能感觉到模式有相似之处,而且那些名字彼此很接近。如何使用 R 的可用文本挖掘功能计算模式相等的百分比,以便最终获得具有所有唯一名称的数据框?
假设和缺点:
直言不讳地假设唯一名称可能是具有最大字符数的名称,因为我拥有的原始数据中有大量的名称拼写错误。 (逻辑假设,也许会减少错别字的数量)
agrep()函数在大字符串中搜索模式的近似匹配,这里的问题是我实际上不知道模式是什么。
像这样对相似的字符串进行分组:
sno names
001 SIRIS BLACK
002 SIRIUS BLACK
003 SIRUS BLACK
004 JHN DOE
005 JOHN DOE
006 JON DOE
007 STEPHEN HARRY
008 STIPHEN HURRY
009 STEPHEN HRYY
最后得到这个:
001 JOHN DOE
002 STEPHEN HARRY
003 STIPHEN HURRY
004 SIRIUS BLACK
【问题讨论】:
-
我会将这类任务交给 Google Refine。
-
我希望我也能做到这一点。我不确定它是否能满足我正在攻读的 R 课程的学术要求,可能会花费我一些宝贵的分数......; )
标签: r dataframe text-mining tm names