2017-07-04 41 views
0

对于我的学士论文项目,我正在开发Chatbot的自然语言理解单元。现在我面临以下问题:用于在德语WordNet中查找Synsets的模糊字符串匹配(GermaNet)

我有一个词,让我们说'汽车',这是德国人的汽车。现在,用户可能会将'autto'作为输入,因为他只是简单地犯了一个错字(添加了额外的't'),并且通常在聊天界面中,用户不遵循大写/小写规则,而是输入所有内容小写。

对于我的NLU算法,我需要为每个单词找到GermaNet中正确的Synset(大致相当于WordNet的英文)。 Synset是wordnet中的一个节点,它将一个词义的所有同义词抽象为一个节点。例如,在德语中,“自动”(汽车)和“汽车”具有相同的含义,因此表示同一个Synset。

现在的问题是,如果我没有拼字正确版本的单词,我怎么才能找到正确的Synset?我的意思是,搜索整个wordnet是计算复杂的每一个字。

我认为N-Grams可能会提供解决方案,但我不知道任何算法。

至于我用什么实现:Python3与NLTK,斯坦福CoreNLP和pygermanet。

回答

0

如果输入词不在GermaNet中,可以先应用拼写修正,例如PyEnchant,然后查找修正的词。