我已经尝试过PorterStemmer和Snowball,但两个都不能用于所有单词,缺少一些非常常见的单词.
我的测试词是:" 猫跑仙人掌仙人掌仙人掌社区社区 ",两者都不到一半.
也可以看看:
自然语言处理(NLP),尤其是英语,已经发展成为如果存在"完美"的引理词,词干将成为一种古老技术的阶段.这是因为词干分析器将单词/标记的表面形式改变为一些无意义的词干.
然后,"完美"变形器的定义是值得怀疑的,因为不同的NLP任务需要不同级别的词形还原.例如,在动词/名词/形容词形式之间转换单词.
词干
[in]: having
[out]: hav
Run Code Online (Sandbox Code Playgroud)
Lemmatizers
[in]: having
[out]: have
Run Code Online (Sandbox Code Playgroud)
所以问题是,英语词干器今天有用吗?因为我们有大量的英语词汇化工具
如果不是,那么我们应该如何着手构建强大的lemmatizers可以取nounify,verbify,adjectify和adverbify
预处理?
如何将词形还原任务轻松扩展到与英语具有相似形态结构的其他语言?
我需要一段文字并从中提取一个"标签"列表.其中大部分都很直接.但是我现在需要一些帮助来阻止生成的单词列表以避免重复.示例:社区/社区
我已经使用了Porter Stemmer算法的实现(顺便说一下我在PHP中编写):
http://tartarus.org/~martin/PorterStemmer/php.txt
这可以达到一定程度,但不会返回"真实"的单词.上面的例子被称为"commun".
我尝试过"Snowball"(在另一个Stack Overflow线程中建议).
http://snowball.tartarus.org/demo.php
对于我的例子(社区/社区),Snowball源于"社交".
题
有没有其他干扰算法可以做到这一点?还有其他人解决了这个问题吗?
我目前的想法是,我可以使用词干算法来避免重复,然后选择我遇到的最短词是要显示的实际词.
我尝试了所有用于词干分析的nltk方法,但它给了我一些奇怪的结果.
例子
当它不应该这样做时,它通常会削减单词的结尾:
或者不是很好:
你知道python中的其他词干库,还是一本好词典?
谢谢
我正在寻找一个Java库来从一个文本块中提取关键字.
该过程应如下:
停止单词清理 - >词干 - >根据英语语言学统计信息搜索关键词 - 这意味着如果一个单词在文本中出现的次数多于在英语中出现的概率而不是关键词候选词.
是否有执行此任务的库?
我正在Java应用程序中处理一些英文文本,我需要阻止它们.例如,从文字"amenities/amenity"我需要得到"amenit".
该功能如下:
String stemTerm(String term){
...
}
Run Code Online (Sandbox Code Playgroud)
我找到了Lucene分析仪,但它看起来太复杂了我需要的东西. http://lucene.apache.org/java/2_2_0/api/org/apache/lucene/analysis/PorterStemFilter.html
有没有办法用它来阻止单词而无需构建分析器?我不了解所有分析仪业务......
编辑:我实际上需要一个词干+词形还原.Lucene可以这样做吗?
我正在寻找一个类或方法,它需要长达100多个单词和标记的字符串,删除用于IR系统的停用词和词干.
例如:
"那只肥胖的大猫,'我知道'你最有趣的家伙'给袋鼠......"
标记器将删除标点符号并返回ArrayList单词
停用词删除器会删除"the","to"等字样
词干将减少每个词的"根",例如"最有趣"会变得有趣
提前谢谢了.
我需要一个好的python模块来在预处理阶段阻止文本文档.
我找到了这个
http://pypi.python.org/pypi/PyStemmer/1.0.1
但我无法在提供的链接中找到文档.
我知道在哪里可以找到文档或任何其他良好的词干算法请帮忙.
我有一套腌制的文本文档,我想用nltk来阻止它PorterStemmer.由于我的项目特定的原因,我想在django应用程序视图中进行干预.
但是,当阻止django视图中的文档时,我收到字符串的IndexError: string index out of range异常.因此,运行以下命令:PorterStemmer().stem()'oed'
# xkcd_project/search/views.py
from nltk.stem.porter import PorterStemmer
def get_results(request):
s = PorterStemmer()
s.stem('oed')
return render(request, 'list.html')
Run Code Online (Sandbox Code Playgroud)
提出上述错误:
Traceback (most recent call last):
File "//anaconda/envs/xkcd/lib/python2.7/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "//anaconda/envs/xkcd/lib/python2.7/site-packages/django/core/handlers/base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File "//anaconda/envs/xkcd/lib/python2.7/site-packages/django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/jkarimi91/Projects/xkcd_search/xkcd_project/search/views.py", line 15, in get_results
s.stem('oed')
File "//anaconda/envs/xkcd/lib/python2.7/site-packages/nltk/stem/porter.py", line 665, in stem
stem = self._step1b(stem) …Run Code Online (Sandbox Code Playgroud)