我有药名(regular_list)和新名称(new_list)的列表清单。我要检查在new_list的名称是否已经存在于regular_list或not.The问题是,名字new_list可能有一些错字错误,我想这些名字将被视为比赛进行到常规列表。 我知道,使用stringdist是解决问题的办法,但我需要一个机器学习算法
Answer 1:
因为它已经在这里提到的机器学习克服错字的错误 ,机器学习工具太多这样的任务,但最简单的可能是,这些方法合并。
一方面,你可以计算edit distance
定单词之间的x
和每个字典中的单词的d_i
。 Additionaly,你可以训练探索每个字分类
c(d_i, distance(x,d_i))
返回True
(类1
)如果给定的编辑距离已经学会了足够的考虑x
的missspelled版本d_i
。 这可以给你更多的一般模型,然后不使用机器学习,你可以为每个字典中的单词不同的阈值(有些话更经常拼写错误,其他人),但很明显,你必须在形式准备一个训练集(misspelled_word, correct_one)
也可以添加(correct_one, correct_one
)。
你可以使用任何类型的二元分类的此类任务,可在“真实”的输入数据的工作。
文章来源: machine learning algorithm for spelling check