波特词干分析器能返回词缀而不是词干吗?

2024-06-16 12:57:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个项目,我试图计算多个语料库中屈折形态的百分比,以便比较它们。你知道吗

我知道如何使用nltk-Porter词干分析器来获取单词的词根,但是如果我能返回词缀而不是词根,那将对我更有帮助。如果我能做到这一点,我就可以计算词干分析器截取的词缀数量(“ly”“ed”等),并将其与单词总数进行比较。这可能是一个简单的翻转,但我不知道如何与根。你知道吗


Tags: 项目分析器数量ly单词形态百分比语料库
2条回答

你确定你说的是屈折形态学吗?屈折变化是指词性不变,而单词的变化只是为了表达某些语法特征(如过去)。屈折词缀总是后缀,如果我们不考虑不规则词,它们的数量是有限的(-ed-ing-er-est-s-es)。你知道吗

然而,你似乎在谈论派生形态学,因为可能只有一个屈折后缀,所以我没有意义去计算它们(如果是引理的话是0,如果是屈折形式的话是1)。你知道吗

如果你说的是派生词缀,那么你要找的就是语素切分/标记化,这不是一件容易的事情,因为单词派生过程受很多因素的影响,而且没有很好的定义。在简单的情况下,我们只需在根中附加一个后缀(或前缀),但是在有些情况下,根中的一些字母会被删除(arrive->;arrival)、更改(try->;tried或更不寻常的情况,如assume->;assumption)甚至附加(drama->;dramatist)。此外,还需要一些语义知识库,因为没有这些知识库,不可能在所有情况下都正确地确定语素。例如,单词remember可以标记为re-+member。在没有语义的情况下,这种形态分析看起来非常合理,因为re-是一个非常流行的前缀,意思是重复,而member是一个已有的词。了解语义关系会告诉我们memberremember没有关联(我相信它们可能在词源上有关联,但在现代语言中,这种关系并不那么明显)。你知道吗

签出Lingua RobotMorfessor。第一个是API,它解析英语Wiktionary,并以JSON格式提供数据。词缀是这个JSON的一部分。Morfessor是一个用于形态学分割的工具,所以它完全可以满足您的需要。你知道吗

好吧,如果你想得到词缀,只要从原来的单词形式中去掉词根(porter result)就行了。你知道吗

考虑以下伪代码:

word = "hopeful"
stem_word = porter(word)           #  stem_word should be "hope"
affix = word.remove(stem_word)     # affix should be "ful" 

另一个可能对你有帮助的方法是使用“连字号”,因为它可以潜在地将单词分成语素,而不仅仅是将单词按词根分开。因此,它可以给你更多的信息。你知道吗

相关问题 更多 >