我需要一段文字并从中提取一个"标签"列表.其中大部分都很直接.但是我现在需要一些帮助来阻止生成的单词列表以避免重复.示例:社区/社区
我已经使用了Porter Stemmer算法的实现(顺便说一下我在PHP中编写):
http://tartarus.org/~martin/PorterStemmer/php.txt
这可以达到一定程度,但不会返回"真实"的单词.上面的例子被称为"commun".
我尝试过"Snowball"(在另一个Stack Overflow线程中建议).
http://snowball.tartarus.org/demo.php
对于我的例子(社区/社区),Snowball源于"社交".
题
有没有其他干扰算法可以做到这一点?还有其他人解决了这个问题吗?
我目前的想法是,我可以使用词干算法来避免重复,然后选择我遇到的最短词是要显示的实际词.
你知道Porter2词干分析器的任何java实现(或者用java编写的更好的词干分析器)吗?我知道这里有一个java版本的Porter(不是Porter2):
http://tartarus.org/~martin/PorterStemmer/java.txt
但在http://tartarus.org/~martin/PorterStemmer/上,作者提到Porter有点过时,建议使用Porter2,可在
http://snowball.tartarus.org/algorithms/english/stemmer.html
然而,我的问题是这个Porter2是用雪球写的(我之前从未听说过,所以对此一无所知).我正在寻找的是它的java版本.
谢谢.非常感谢你的帮助.