【问题标题】:NLTK stem words produces odd resultsNLTK 词干产生奇怪的结果
【发布时间】:2012-07-17 10:52:31
【问题描述】:

在运行nltk.stem.porter.PorterStemmer().stem_word(word) 之后,我得到了许多带有 'ing' 截断或 'y' 与 'i' 交换的单词。例如“质量”变成了“质量”,(甚至更陌生的)“价值”变成了“价值”?

由于生成的单词不是实际的英文单词,我不确定我应该如何使用它们?我最好的猜测是,我打算将词干放入另一个函数中,该函数将为我提供来自该词干的所有派生/子词(例如,“值”将返回 ['valuing','valued', 'values', ...]。有这样的函数吗?

【问题讨论】:

  • 您是否尝试对这些词进行词形还原?结果如何?
  • 所问内容的术语是lexeme。所以更好的做法是获取原始的预词干词并通过这样的函数而不是词干版本来运行它以获取该词的所有词位。

标签: python nlp nltk


【解决方案1】:

词干提取是通过一系列转换规则来提取词干的,这些规则会去除常见的后缀和前缀。因此产生的结果可能不是一个实际的英文单词。 词干提取的一般用途是对单词进行规范化,以使它们被认为是相同的。例如:

stem_word('value') == stem_word('valuing')

然后可以对词干词进行索引以进行搜索。对传入的查询进行相同的词干提取,以便在进行查找时查询词与索引中的词干词匹配。

【讨论】:

    【解决方案2】:

    我不熟悉该特定功能,但一般来说,词干表示词根,不一定是合法的英语词。

    你在使用 nltk 书吗?本章介绍词干提取:http://nltk.googlecode.com/svn/trunk/doc/book/ch03.html

    【讨论】:

      猜你喜欢
      • 2013-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多