我試圖合併具有相同基數的單詞。 例子:如何檢查兩個單詞是否具有相同的基礎或詞幹?
- 事故
- 意外
- 意外
- 事故
或
- 放棄
- 拋棄
- 放棄
起初我用
Word.Application().SynonymInfo[myWord, Word.WdLanguageID.wdEnglishUS];
從word.dll
得到一個單詞的同義詞。但我意識到我不想合併只有同義詞,但具有相同基礎的單詞。
是否有任何功能可以使用從word.dll
或任何dll
如果2個單詞具有相同的基地將返回?
我試圖合併具有相同基數的單詞。 例子:如何檢查兩個單詞是否具有相同的基礎或詞幹?
或
起初我用
Word.Application().SynonymInfo[myWord, Word.WdLanguageID.wdEnglishUS];
從word.dll
得到一個單詞的同義詞。但我意識到我不想合併只有同義詞,但具有相同基礎的單詞。
是否有任何功能可以使用從word.dll
或任何dll
如果2個單詞具有相同的基地將返回?
英語語言有很多例外情況,但使用您自己的小功能照顧少數幾個最常見的情況會照顧90%的情況。
這似乎是有幾個常見的場景:
一)過去式:通過添加後綴 「ED」
B)複數形式:通過增加 「S」, 「ES」,
c)中共同後綴製備形容詞:
d)共同後綴副詞
E)共同後綴用於轉換動詞與noun
因此,通過從單詞中刪除通用後綴,我們可以嘗試合併導致相同基數的單詞。
對於不常見的場景,可能是我們可以通過一些字符串類似的算法來知道字符串是否相似都不是。喜歡用Levenshtein距離實現:
請看下面的計算器問題也:
Are there any Fuzzy Search or String Similarity Functions libraries written for C#?
謝謝你,不錯的鏈接 – Marc
「拋棄」不是「拋棄」的代名詞...... – BartoszKP
你需要看看看起來似乎是「同義詞」的定義。 –
我知道,我注意到它不是同義詞,這就是爲什麼我要檢查相同的基礎。 – Marc