繁体   English   中英

如何检查两个单词的基数或词干是否相同?

[英]How to check if 2 words have the same base or stem?

我正在尝试合并具有相同基础的单词。 例:

  • 事故
  • 偶然
  • 偶然
  • 事故

要么

  • 放弃
  • 放弃

起初我用

 Word.Application().SynonymInfo[myWord, Word.WdLanguageID.wdEnglishUS];

word.dll获取单词的word.dll 但是我意识到我并不想只合并同义词,而是合并具有相同基数的单词。

如果两个单词具有相同的基数,我是否可以从word.dll或任何会返回的dll使用任何功能?

您可能正在寻找Inflector ,这是一个开源库。

与.Net 3.5兼容

这是它的示例代码

英语有很多例外,但是使用您自己的小功能来处理一些最常见的情况将解决90%的情况。

似乎没有几种常见的方案:

a)过去式:通过添加后缀“ ed”

b)复数:通过添加“ s”,“ es”,

c)形容词的通用后缀:

d)副词的通用后缀

e)用于将动词转换为名词的通用后缀

因此,通过从单词中删除通用后缀,我们可以尝试合并产生相同基数的单词。

对于不太常见的情况,可能是,我们可以使用一些字符串相似的算法来了解字符串是否相似。 就像使用Levenshtein距离实现:

使用LINQ

请同时参阅以下stackoverflow问题:

是否有为C#编写的模糊搜索或字符串相似函数库?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM