需要一个python模块来阻止文本文档

kai*_*rav 18 python preprocessor nlp module stemming

我需要一个好的python模块来在预处理阶段阻止文本文档.

我找到了这个

http://pypi.python.org/pypi/PyStemmer/1.0.1

但我无法在提供的链接中找到文档.

我知道在哪里可以找到文档或任何其他良好的词干算法请帮忙.

dit*_*kin 32

您可能想尝试NLTK

>>> from nltk import PorterStemmer
>>> PorterStemmer().stem('complications')
Run Code Online (Sandbox Code Playgroud)

  • 您是正确的,还有其他词干。从[有关词干分析器的Python自然语言处理部分](http://www.nltk.org/book3/ch03.html#stemmers)的预览中,他们对Lancaster和Porter进行了简单的比较,然后指出“词干不是这是一个定义明确的过程,我们通常会选择最适合我们所想到的应用程序的词干分析器。如果您要对某些文本建立索引并希望使用其他形式的单词来支持搜索,那么Porter Stemmer是一个不错的选择。” (2认同)

shi*_*iva 6

Python词干模块具有各种词干算法的实现,如Porter,Porter2,Paice-Husk和Lovins. http://pypi.python.org/pypi/stemming/1.0

    >> from stemming.porter2 import stem
    >> stem("factionally")
    faction
Run Code Online (Sandbox Code Playgroud)


0xF*_*0xF 6

这里讨论的所有这些词干分析器都是算法词干分析器,因此它们总能产生意想不到的结果,例如

In [3]: from nltk.stem.porter import *

In [4]: stemmer = PorterStemmer()

In [5]: stemmer.stem('identified')
Out[5]: u'identifi'

In [6]: stemmer.stem('nonsensical')
Out[6]: u'nonsens'
Run Code Online (Sandbox Code Playgroud)

要正确获取根词,需要一个基于字典的词干提取器,如Hunspell Stemmer.Here是以下链接中的python实现.示例代码在这里

>>> import hunspell
>>> hobj = hunspell.HunSpell('/usr/share/myspell/en_US.dic', '/usr/share/myspell/en_US.aff')
>>> hobj.spell('spookie')
False
>>> hobj.suggest('spookie')
['spookier', 'spookiness', 'spooky', 'spook', 'spoonbill']
>>> hobj.spell('spooky')
True
>>> hobj.analyze('linked')
[' st:link fl:D']
>>> hobj.stem('linked')
['link']
Run Code Online (Sandbox Code Playgroud)

  • -1:词干分析器的对象不是找到根词(或者词形化,nltk也有一个模块),而是找到其他词义也会缩短的词的缩短版本.如果提取器没有找到根词并不重要; 只要'干('废话')==干('荒谬')!=干('香蕉')`,它就没事了. (6认同)