我需要一段文字并从中提取一个"标签"列表.其中大部分都很直接.但是我现在需要一些帮助来阻止生成的单词列表以避免重复.示例:社区/社区
我已经使用了Porter Stemmer算法的实现(顺便说一下我在PHP中编写):
http://tartarus.org/~martin/PorterStemmer/php.txt
这可以达到一定程度,但不会返回"真实"的单词.上面的例子被称为"commun".
我尝试过"Snowball"(在另一个Stack Overflow线程中建议).
http://snowball.tartarus.org/demo.php
对于我的例子(社区/社区),Snowball源于"社交".
题
有没有其他干扰算法可以做到这一点?还有其他人解决了这个问题吗?
我目前的想法是,我可以使用词干算法来避免重复,然后选择我遇到的最短词是要显示的实际词.
刚刚开始使用Lucene.Net.我使用标准分析器索引100,000行,运行一些测试查询,并注意到如果原始术语是单数,则多个查询不会返回结果.据我所知,雪球分析仪增加了支持,这听起来不错.但是,我想知道是否有超过标准的雪球锣有任何缺点?我是否会因为它而失去任何东西?还有其他分析仪要考虑吗?
我需要找出在特定索引中配置的分析器(类型,语言..).我试过http://localhost:9200/wazzup/_mapping
但它只提供有关字段名称/类型的信息.
谢谢
你知道Porter2词干分析器的任何java实现(或者用java编写的更好的词干分析器)吗?我知道这里有一个java版本的Porter(不是Porter2):
http://tartarus.org/~martin/PorterStemmer/java.txt
但在http://tartarus.org/~martin/PorterStemmer/上,作者提到Porter有点过时,建议使用Porter2,可在
http://snowball.tartarus.org/algorithms/english/stemmer.html
然而,我的问题是这个Porter2是用雪球写的(我之前从未听说过,所以对此一无所知).我正在寻找的是它的java版本.
谢谢.非常感谢你的帮助.
我正在搜索一个java库或其他东西,以阻止意大利语单词串.
目标是比较意大利语单词.在这一刻,像"attacco","attacchi","attaccare"等词被认为是不同的,而我想要回到真正的比较.
我找到了类似Lucene,snowball.tartarus.org等的东西.还有其他有用的东西,或者我如何在java中使用它们?
谢谢你的回答.
解析许多文档后,我有很多包含乌克兰语文本的行/列,应该为 Postgres 中的全文搜索建立索引。
我发现 Postgres 14 默认支持29 种语言,但不幸的是不支持乌克兰语。
经过后续挖掘,我发现它允许添加外部字典:
CREATE TEXT SEARCH DICTIONARY my_lang_ispell (
TEMPLATE = ispell,
DictFile = path_to_my_lang_dict_file,
AffFile = path_to_my_lang_affixes_file,
StopWords = path_to_my_lang_astop_words_file
);
Run Code Online (Sandbox Code Playgroud)
但如何找到最相关的DictFile
、AffFile
、 和StopWords
文件呢?例如,snowball源不包含此语言。
那么,有人可以帮助我找到获取ispell
、aspell
、snowball
或其他乌克兰语词典的最佳方法吗?
谢谢!
我正在为一个网站构建一个搜索引擎,其中用户可以来自许多不同的国家并发布文本内容。
我会考虑: - 法语生成法语和英语的内容 - 德语生成德语和英语的内容等...
我想知道是否可以同时使用不同的雪球词干语言进行搜索,以便我们同时获得适当的结果。
我们是否必须为每个雪球词干语言创建一个索引?
这种情况有已知的模式吗?
谢谢
我想在这里使用词干分析器来合并字数.
http://snowball.tartarus.org/download.html
该页面有一个下载链接,但我不确定如何将文件集成到我的eclipse项目中
它不仅仅是一个放入我的lib文件夹的jar,它是一个文件系统.有没有人知道解释这个的一些文件,因为我在网站上没有看到任何文件.
(如,我要导入什么,如何调用它等...)
我最近开始研究关于德语文本的情绪分析项目,我计划使用词干分析器来改善结果.
NLTK配有德国Snowball Stemmer并且我已经尝试过使用它,但我不确定结果.也许它应该是这样的,但作为一个计算机科学家,而不是一个语言学家,我有一个问题,变形动词形式源于不同的词干.
取"suchen"(搜索)这个词,对于第一人称单数而言应该是"这样的",而对于第三人称单数则是"如此".
我知道还有词形还原,但据我所知,没有可用的德语引理器集成到NLTK中.有GermaNet,但他们的NLTK集成似乎已经中止.
重点:我想将变形动词形式归结为相同的词干,至少对于同一时态内的常规动词.如果这对我的目标不是一个有用的要求,请告诉我原因.如果是,您是否知道可以使用哪些其他资源来帮助我实现这一目标?
编辑:我忘了提及,任何软件都应该可以免费用于教育和研究目的.
我知道如何在单个单词上执行SnowballStemmer(在我的情况下,在俄语单词上).做下一件事:
from nltk.stem.snowball import SnowballStemmer
stemmer = SnowballStemmer("russian")
stemmer.stem("???????")
'?????'
Run Code Online (Sandbox Code Playgroud)
如果我有一个像['Василий','Геннадий','Виталий']这样的单词列表,我该怎么办呢?
我使用for循环的方法似乎不起作用:(
l=[stemmer.stem(word) for word in l]
Run Code Online (Sandbox Code Playgroud) 我stemDocument
用于使用tm
R中的包来阻止文本文档.示例代码:
data("crude")
crude[[1]]
stemDocument(crude[[1]])
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息:
loadNamespace(name)出错:没有名为'Snowball'的包
我已经安装了SnowballC
包,无法找到Snowball包.以下是我的sessionInfo()
:
R version 2.15.3 (2013-03-01)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
locale:
[1] en_CA.UTF-8/en_CA.UTF-8/en_CA.UTF-8/C/en_CA.UTF-8/en_CA.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] SnowballC_0.5 tm_0.5-8.3
loaded via a namespace (and not attached):
[1] slam_0.1-31 tools_2.15.3
Run Code Online (Sandbox Code Playgroud)
它需要任何其他包裹还是雪球?
我正在处理一些 nlp 任务。我的输入是法语文本,因此在我的上下文中只有 Snowball Stemmer 可用。但不幸的是,它不断给我可怜的茎,因为它甚至不会删除plural "s"
或silent e
。下面是一些例子:
from nltk.stem import SnowballStemmer
SnowballStemmer("french").stem("pommes, noisettes dorées & moelleuses, la boîte de 350g")
Output: 'pommes, noisettes dorées & moelleuses, la boîte de 350g'
Run Code Online (Sandbox Code Playgroud)