【发布时间】:2013-08-22 07:59:53
【问题描述】:
我有一个药物名称列表(regular_list)和一个新名称列表(new_list)。我想检查 new_list 中的名称是否已经存在于 regular_list 中。问题是名称 new_list 可以有一些拼写错误,我希望这些名称被视为与常规列表匹配。我知道使用 stringdist 可以解决问题,但我需要机器学习算法
【问题讨论】:
标签: text machine-learning stringdist
我有一个药物名称列表(regular_list)和一个新名称列表(new_list)。我想检查 new_list 中的名称是否已经存在于 regular_list 中。问题是名称 new_list 可以有一些拼写错误,我希望这些名称被视为与常规列表匹配。我知道使用 stringdist 可以解决问题,但我需要机器学习算法
【问题讨论】:
标签: text machine-learning stringdist
正如这里machine learning to overcome typo errors 已经提到的那样,机器学习工具对于此类任务来说太多了,但最简单的可能性是合并这些方法。
一方面,您可以计算给定单词x 和每个字典单词d_i 之间的edit distance。另外,您可以训练每个单词的分类器
c(d_i, distance(x,d_i))
返回True(类1)如果一个给定的编辑距离已经被认为足以将x视为d_i的拼写错误版本。这可以为您提供比不使用机器学习更通用的模型,因为您可以为每个字典单词设置不同的阈值(有些单词比其他单词更容易拼错),但显然,您必须准备一个 (misspelled_word, correct_one) 形式的训练集(并添加(correct_one, correct_one)。
您可以为此类任务使用任何类型的二进制分类器,它可以处理“真实”输入数据。
【讨论】: