JAVA获取给定字符串/单词的复数/单数[已关闭]

fumotvh3  于 2022-11-07  发布在  Lucene
关注(0)|答案(2)|浏览(201)

已关闭。此问题需要更多的focused。当前不接受答案。
**想要改进此问题吗?**更新问题,使其仅关注editing this post的一个问题。

三年前就关门了。
Improve this question
尝试将一个单词与一些硬编码值进行匹配,假设我有这个单词
'revenue' but 'revenues'
应该也是匹配,就像这样

'liability' > 'liabilities' .

我们应该采取什么样的方法呢,先谢谢了。
我试过使用我自己的算法,但它是非常困难的维护词库及其各自的复数或单数。

3gtaxfhh

3gtaxfhh1#

如果你不想维护完整的字典,那么你可以尝试实现一些通用规则加上这些规则的例外字典。但这些都是快速和黑客的解决方案。取决于它必须有多好,不同的方法也可以使用,如机器学习,也许一些语言服务可以在云上,如AWS或Azure...

hts6caw3

hts6caw32#

你可能会想看看lucene的PorterStemmer。这个想法是比较两个单词的词干,而不是比较单数和复数。你可以阅读更多关于它的内容here
Here是maven依赖关系,下面是一个示例:

PorterStemmer stemmer = new PorterStemmer();
stemmer.setCurrent("liability");
stemmer.stem();
System.out.println(stemmer.getCurrent());

stemmer.setCurrent("liabilities");
stemmer.stem();
System.out.println(stemmer.getCurrent());

上面的语句为两个单词返回相同的词干。

相关问题