0

我无法在此处搜索正确的术语来解决以下问题;我确定它已经完成了,我只是找不到合适的术语来表达这个问题!

我基本上是在尝试创建一个分类器,它将获取单词比较输出(例如,来自 Levenstein 距离的一些输出)并确定单词是否足够不同。一个重要的输入可能类似于 soundex 比较。我遇到的麻烦是为算法创建训练集(在这种情况下是 SVM)。我有一长串名字,我需要对它们进行一些变异(基于单词中的相似发音)。

例如John,并且Jon将是一个突变,我可以在测试集中将其标记为等效。John并且Johann有足够不同的声音和字母距离被认为是不同的。

所以我有点要求是一种实现音素变化生成器的方法,但需要能够保留英文字母结构。

即使是简单的翻译也可能就足够了,例如“f”可以(有时)被“ph”替换。我正在用 Java 做这个,所以任何在这个方向上的提示都会很棒!谢谢。

编辑

这是迄今为止我遇到的最接近的:http ://www.isi.edu/natural-language/people/hovy/papers/07IJCAI-spelling-variants.pdf

4

1 回答 1

1

我只是在大声思考。

基于规则:应用基于规则的系统,您可以使用标准替换规则,例如“ph”替换“f”,以及插入规则,例如在元音和辅音之间插入 h。

字符 n-gram 对齐:使用 Giza++ 等单词对齐工具来对齐来自 Europarl 等并行语料库的字符 n-gram。我猜你会发现有趣的单词拼写变体,例如“house”、“haus”等。你可以使用各种 n 值。

使用基于规则的引导字符 n-gram 对齐:您可能还希望使用两者的组合,原则上,您可以通过使用一组外部规则和启发式方法来提高某些对齐的概率。

于 2014-08-13T18:46:06.420 回答