我在这里寻找合适的术语以解决以下问题;我确定这是一件已经完成的事情,我找不到合适的条款来表达这个问题!
我基本上试图创建一个分类器,它将采用单词比较输出(例如来自Levenstein距离的一些输出)并确定单词是否足够不同。一个重要的输入可能就像soundex比较。我遇到的麻烦是为算法创建训练集(在这种情况下是SVM)。我有一长串的名字,我需要稍微改变一下(根据单词中的类似声音)。
E.g。 John
和Jon
将是一个突变,我可以在测试集中将其标记为等效。 John
和Johann
具有完全不同的声音和字母距离,可视为不同。
所以我有点要求是一种实现音素变异发生器的方法,但需要能够保留英文字母结构。
即使简单的翻译也可能就足够了,比如“f”可以(有时)被“ph”取代。我在Java中这样做,所以在这方面的任何提示都会很棒!感谢。
修改
这是我到目前为止最接近的地方:http://www.isi.edu/natural-language/people/hovy/papers/07IJCAI-spelling-variants.pdf
答案 0 :(得分:1)
我只是在大声思考。
基于规则:应用基于规则的系统,您可以使用标准替换规则,例如'f'代表'f',以及插入规则,例如在元音和元音之间插入h辅音。
字符n-gram对齐: 使用诸如Giza ++之类的单词对齐工具来对齐来自并行语料库(如Europarl)的字符n-gram。我想你可以找到有趣的单词拼写变体,如“house”,“haus”等。你可以使用各种n值。
使用基于规则的引导字符n-gram对齐:您可能还希望使用两者的组合,原则上可以通过使用a来提高某些对齐的概率一套外部规则和启发式。