我在这里寻找正确的词来解决以下问题时遇到了麻烦;我敢肯定这是完成的事情,我只是找不到合适的术语来表达问题!

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

例如。 JohnJon是要进行的变异,我可以在测试集中将其标记为等效。 JohnJohann具有足够不同的声音和字母距离,可以认为是不同的。

因此,我有点想提供一种实现音素变化生成器的方法,但需要能够保留英文字母结构。

甚至简单的翻译也足够了,例如“ f”可以(有时)被“ ph”代替。我正在Java中执行此操作,因此朝该方向的任何提示也将非常有用!谢谢。

编辑

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

最佳答案

我只是大声想。

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

字符n-gram对齐:
使用诸如Giza ++之类的单词对齐工具来对齐来自平行语料库(例如Europarl)的字符n-gram。我猜您将能够找到有趣的单词拼写变化,例如“ house”,“ haus”等。您可以使用n的各种值进行游戏。

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

关于java - 转换相似的声音词部分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25273963/

10-09 09:48