这个问题通常有两个部分:确定哪些项目可能出错,然后解决这些问题。
如果您假设大多数项目拼写正确,那么找到可能的错误非常容易。修复错误要自动化要困难得多,并且在任何合理的时间内完成100%都是不可能的。但是你可能会发现,如果你能很好地找到错误,那么手动修复它们并不是什么大问题。
为了找到错误,我建议您列出每项技能,并计算整个数据集中每项技能的引用次数。当你完成后,你将有一个列表,如:
MANAGEMENT, 22 JAVA, 298 HADOOP, 12 HADUP, 1 SALES, 200 SALS, 1
每种技能都会与拥有该技能的用户数一起列出。
现在,按频率对这些进行排序并选择一个阈值。假设您选择更频繁地检查频率为3或更低的任何事物。这个想法是,相对于其他项目使用次数非常少的项目可能是拼写错误。
一旦确定了要更仔细检查的术语,就可以确定是否要自动执行更改,或者是否要手动执行此更改。当我必须这样做时,我得到了可能的拼写错误列表,并手动创建了一个拼写错误和更正的文件。例如:
SALS,SALES HADUP,HADOOP PREFORMANCE,PERFORMANCE
有几百个,但手动创建文件比编写一个程序以找出正确的拼写应该是快得多。
然后我加载了该文件并浏览了我的用户记录,根据需要进行了替换。
节省大量时间是找到可能的替代候选人。在那之后,修复它们几乎是事后的想法。
也就是说,除非你真的想花几个月研究项目。然后你可以用编辑距离算法,语音算法和其他东西来打自己 威力 弄清楚“edicit”和“礼仪”应该是同一个词。
在机器学习范例中对此非常有效的东西是 字符串匹配内核 。由于这些是实际的内核函数,如果要将学习表示为SVM,它们非常方便。