【发布时间】:2017-12-07 12:40:40
【问题描述】:
对于我的学士论文项目,我正在为聊天机器人开发自然语言理解单元。现在我面临以下问题:
我有一个词,比如说“汽车”,它在德语中相当于汽车。现在用户可能会输入 'auto' 作为输入,因为他只是打了一点错字(添加了一个额外的 't')并且通常在聊天界面中,用户不遵循大写/小写规则,而是输入所有内容小写。
对于我的 NLU 算法,我需要在 GermaNet(大致相当于英语的 WordNet)中为每个单词找到正确的 Synset。 Synset 是 wordnet 中的一个节点,它将词义的所有同义词抽象到一个节点中。例如,在德语中,“Auto”(汽车)和“Automobil”具有相同的含义,因此表示相同的 Synset。
现在的问题是,如果我没有单词的拼写正确版本,我如何才能找到正确的 Synset?我的意思是,搜索整个 wordnet 对于每个单词的计算都非常复杂。
我认为 N-Grams 可能会为该问题提供解决方案,但我不知道有任何算法。
至于我使用什么来实现:Python3 与 NLTK、Stanford CoreNLP 和 pygermanet。
【问题讨论】:
标签: nlp wordnet chatbot fuzzy-search linguistics