标签: stemming

我如何做词干或词形还原?

我已经尝试过PorterStemmer和Snowball,但两个都不能用于所有单词,缺少一些非常常见的单词.

我的测试词是:" 猫跑仙人掌仙人掌仙人掌社区社区 ",两者都不到一半.

也可以看看:

nlp stemming lemmatization

109
推荐指数
8
解决办法
13万
查看次数

Stemmers vs Lemmatizers

自然语言处理(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,adjectifyadverbify 预处理?

  • 如何将词形还原任务轻松扩展到与英语具有相似形态结构的其他语言?

nlp text-analysis stemming wordnet lemmatization

71
推荐指数
2
解决办法
2万
查看次数

用于生成真实单词的词干算法

我需要一段文字并从中提取一个"标签"列表.其中大部分都很直接.但是我现在需要一些帮助来阻止生成的单词列表以避免重复.示例:社区/社区

我已经使用了Porter Stemmer算法的实现(顺便说一下我在PHP中编写):

http://tartarus.org/~martin/PorterStemmer/php.txt

这可以达到一定程度,但不会返回"真实"的单词.上面的例子被称为"commun".

我尝试过"Snowball"(在另一个Stack Overflow线程中建议).

http://snowball.tartarus.org/demo.php

对于我的例子(社区/社区),Snowball源于"社交".

有没有其他干扰算法可以做到这一点?还有其他人解决了这个问题吗?

我目前的想法是,我可以使用词干算法来避免重复,然后选择我遇到的最短词是要显示的实际词.

php nlp stemming snowball porter-stemmer

36
推荐指数
3
解决办法
3万
查看次数

Python中最好的词干提取方法是什么?

我尝试了所有用于词干分析的nltk方法,但它给了我一些奇怪的结果.

例子

当它不应该这样做时,它通常会削减单词的结尾:

  • poodle => poodl
  • 文章清楚

或者不是很好:

  • 容易和容易的不是同一个词
  • 叶子,长大,相当不干

你知道python中的其他词干库,还是一本好词典?

谢谢

python stemming nltk

30
推荐指数
5
解决办法
4万
查看次数

Lucene希伯来分析仪

有人知道是否存在吗?

我一直在谷歌上搜索蒙太奇...

谢谢

lucene stemming hebrew

29
推荐指数
1
解决办法
3397
查看次数

用于从输入文本中提取关键字的Java库

我正在寻找一个Java库来从一个文本块中提取关键字.

该过程应如下:

停止单词清理 - >词干 - >根据英语语言学统计信息搜索关键词 - 这意味着如果一个单词在文本中出现的次数多于在英语中出现的概率而不是关键词候选词.

是否有执行此任务的库?

java nlp extract stemming keyword

29
推荐指数
2
解决办法
2万
查看次数

用Lucene扼杀英语单词

我正在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可以这样做吗?

java lucene stemming porter-stemmer

28
推荐指数
4
解决办法
6万
查看次数

Tokenizer,停止Word删除,用Java编写

我正在寻找一个类或方法,它需要长达100多个单词和标记的字符串,删除用于IR系统的停用词和词干.

例如:

"那只肥胖的大猫,'我知道'你最有趣的家伙'给袋鼠......"

标记器将删除标点符号并返回ArrayList单词

停用词删除器会删除"the","to"等字样

词干将减少每个词的"根",例如"最有趣"会变得有趣

提前谢谢了.

java stemming tokenize stop-words

20
推荐指数
2
解决办法
5万
查看次数

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

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

我找到了这个

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

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

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

python preprocessor nlp module stemming

18
推荐指数
3
解决办法
3万
查看次数

nltk stemmer:字符串索引超出范围

我有一套腌制的文本文档,我想用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)

nlp stemming porter-stemmer nltk

15
推荐指数
1
解决办法
3513
查看次数