2017-07-04 71 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,然後查找修正的詞。