问题标签 [snowball-stemmer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
maven - Lucene 打破了 Snowball 词干分析器的依赖
在我的 Java 项目(使用Maven)中,我将Gate 8.0作为进行一些自然语言处理的基础,它加载了Stemmer_Snowball插件(参见插件列表)。正如文档所述,Stemmer 正在处理 Snowball 词干分析器上的资源包装器 ( http://snowball.tartarus.org )。
Gate 加上词干分析器运行良好,直到我将Hibernate Search ORM 5.9(因此 Lucene)依赖项添加到项目中:
事实证明,该lucene-analyzers-common
软件包覆盖了一些旧版本的org.tartarus.snowball
软件包(有关更多信息,请参阅软件包摘要),现在自定义 Lucene Snowball 软件包和原始 Snowball 软件包不兼容:
- 雪球原版: https ://github.com/snowballstem/snowball/tree/master/java/org/tartarus/snowball
- Lucene Snowball 版本: https ://github.com/apache/lucene-solr/tree/master/lucene/analysis/common/src/java/org/tartarus/snowball
请注意,即使 Lucene 覆盖了 Snowball 包类,它也会保留原始包名,这会使库不兼容。
我想在我的项目中同时使用 Gate(使用原始 Snowball 词干分析器)和 Hibernate Search(使用自定义 Lucene Snowball 词干分析器)。Maven 优雅地阻止我们加载同一个包的多个版本,那么在这种情况下我该怎么办?
python - 德语词干分析器不会删除女性后缀“-in”和“-innen”
在德语中,每份工作都有女性化和男性化的版本。女性化的是通过添加“-in”后缀从男性化的。在复数形式中,这变成了“-innen”。
例子:
目前,我正在使用 NLTK 的nltk.stem.snowball.GermanStemmer
. 它返回这些词干:
有没有办法让这个词干分析器为所有四个版本(女性版和男性版)返回相同的词干?或者,是否有其他词干分析器这样做?
更新
我最终添加了“-innen”和“-in”作为第 1 步后缀元组中的第一个条目,如下所示:
这样,上述所有单词都分别被提取为lehr
和arzt
。此外,到目前为止我尝试过的所有其他“工作形式”都是正确的,这意味着男性和女性形式具有相同的词干。此外,如果“工作形式”源自动词,例如Lehrer/in
,则它们与动词具有相同的词干。
java - 是否有一种简单且标准的方式来自定义 Lucene 雪球词干分析器?
我正在使用 Lucene 7.x 和 ItalianStemmer。我看过 ItalianStemmer 类的代码,似乎需要很长时间才能理解。因此,我正在寻找一种快速(可能是标准)的方式来定制意大利词干分析器,而不需要扩展 ItalianStemmer 或 SnowballProgram,因为我只有几天时间。
关键是我不明白为什么“saluto”(问候)这个名字是“sal”。它的词干应该是“salut”,因为动词“salutare”(问候)的词干是“salut”。此外,“sala”(房间)和“sale”(房间)也被词根为“sal”,这很容易混淆,因为它们的含义不同。
elasticsearch - AWS ElasticSearch 服务 - 我可以使用任何词干分析器吗?
尝试使用类似于雪球的英语词干分析器来确保多个搜索查询。
有标准的aws吗?还是我需要安装插件?我试过以下2,得到以下:
{"error":{"root_cause":[{"type":"remote_transport_exception","reason":"[dd63ee99c9186dd4b38e282ea58cbe6b][x.x.x.x:9300][indices:admin/create]"}],"type":"illegal_argument_exception","reason":"unknown setting [index.filter.my_stemmer.language] please check that any required plugins are installed, or check the breaking changes documentation for removed settings","suppressed":[{"type":"illegal_argument_exception","reason":"unknown setting [index.filter.my_stemmer.type] please check that any required plugins are installed, or check the breaking changes documentation for removed settings"}]},"status":400
}
尝试1:
和
尝试2:
python - 创建自定义标记器
我必须使用创建自定义标记器CountVectorizer()
,它将执行以下操作:
- 使用 nltk 中的 word_tokenizer 将文本拆分为标记
- 删除带有标点符号、数字和标记的标记
nltk.corpus.stopwords('russian')
- 冲压
SnowballStemmer
是否可以仅通过更改参数来完成此任务CountVectorizer
?
我想创建一个字典,但我认为有一种方法可以使它更容易。
我的尝试:
python - 修复 SnowballStemmer 错误“AttributeError: 'English' object has no attribute 'Default”
你好:) 我正在使用包 SnowballStemmer,但我收到了一个错误。我很高兴得到任何帮助:)
代码:
这里的错误:
python - 如何修复“SnowballStemmer”对象没有“StemWords”属性?
这是代码:
错误:
我很高兴能得到任何帮助来解决这个问题。先感谢您。