我一直在尝试使用Stanford NLP工具箱及其lemmatization功能。我很惊讶它如何使某些词变得笨拙。例如:
depressing -> depressing
depressed -> depressed
depresses -> depress
它不能将
depressing
和depressed
转换为相同的引理。 Simmilar与confusing
和confused
,hopelessly
和hopeless
一起发生。我感觉到,如果单词的形式是这种形式(例如s
),它唯一可以做的就是删除feels -> feel
。这样的行为对英语抗辩者正常吗?我希望他们能够将常见单词的这种变体转换成相同的引理。如果正常,我应该使用茎干吗?并且,有没有办法在StanfordNLP中使用像Porter(Snowball等)这样的词干提取器?他们的文档中没有提到词干分析器;但是,API中有一些
CoreAnnotations.StemAnnotation
。如果无法使用StanfordNLP,那么您建议在Java中使用哪种茎茎? 最佳答案
合法化至关重要地取决于令牌的词性。只有具有相同词性的标记才被映射到相同的引理。
在句子“这令人困惑”中,confusing
被分析为形容词,因此将其限定为confusing
。相比之下,在句子“我在使您与其他人混淆”中,confusing
被分析为动词,并被词义化为confuse
。
如果希望将具有不同词性的标记映射到同一引理,则可以使用诸如Porter Stemming之类的词干算法,只需对每个标记调用即可。