问题标签 [stemming]
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.
solr - Solr Snowball 词干分析器与西班牙语不一致
我有这个词干领域:
搜索查询alquileres
(rents) 的预期结果将是alquiler
(rent) 的匹配项。但是当我进入 Solr 管理站点中的“字段分析”并检查 的索引值alquiler
和查询值时alquileres
,会发生以下情况:
- 编制索引时
alquiler
,它会变成alquil
. - 查询时
alquileres
,它会变成alquiler
.
因此,搜索单词的复数形式 ( alquileres
) 的简单情况不会匹配其单数形式 ( alquiler
)。
索引和查询不应该被提取到同一个词干(alquiler
或者alquil
)吗?这是算法的限制还是我的误解/错误配置?
php - Sphinx 的斯洛文尼亚语词干分析器
我正在搜索可以与 Sphinx 搜索一起使用的斯洛文尼亚语词干算法。
我想要实现的是例如在搜索“jabolka”时,我还想要包含“jabolko”、“jabolki”、“jabolk”等的文档的结果。
我找到了一些关于斯洛文尼亚词干分析器存在的参考资料,但我找不到在哪里下载它,它甚至没有在任何地方出售......
我遇到的另一个选项是wordforms
在 Sphinx 源配置(http://sphinxsearch.com/docs/manual-0.9.9.html#conf-wordforms)中使用选项,但是构建我自己的字典太难了,所以我'我想知道是否已经有任何可公开访问的词典?
如果斯洛文尼亚语词干分析器不可用,有人可以建议一些其他方法来实现类似的搜索结果吗?
lucene - 创建 Lucene 分析器
我想做一些基本的希伯来语词干。
我能找到的所有自定义分析器的示例总是合并其他分析器和过滤器,但从不自己进行任何字符串级别的处理。
例如,如果我想创建一个分析器,对于它获取的流中的每个术语,我必须做什么,按照以下规则发出一个或两个术语:如果传入术语以“a”以外的任何其他内容开头,它应该按原样通过。如果传入的术语以“a”开头,则应使用两个术语:原始术语和第二个不带前导“a”且具有较低提升的术语。
因此,如果文档有“help away”,它将返回“help”、“away”和“way^0.8”。
我应该覆盖分析器的哪些方法来执行此操作?(指向类似性质示例的指针将非常有帮助)。
谢谢
java - 词干的逆过程
我使用 lucene 雪球分析器来执行词干提取。结果是没有意义的话。我提到了这个问题。
一种解决方案是使用一个数据库,该数据库包含一个词的词干版本与一个稳定版本的词之间的映射。(从社区到社区的示例,无论社区的基础是什么(社区/或其他词))
我想知道是否有执行此类功能的数据库。
java - 为单词词形还原和类似任务创建自己的规则的工具
我正在做很多自然语言处理,但要求有点不寻常。我经常得到类似于词形还原的任务——给定一个词(或只是一段文本),我需要找到一些模式并以某种方式转换这个词。例如,我可能需要纠正拼写错误,例如给定单词“eatin”,我需要将其转换为“eating”。或者我可能需要将单词“ahahaha”、“ahahahaha”等转换为“ahaha”等。
所以我正在寻找一些通用工具,允许为这种情况定义转换规则。规则可能如下所示:
那就是我需要能够在右侧使用从左侧捕获的模式。
我与完全不懂编程的语言学家一起工作,所以理想情况下,这个工具应该使用外部文件和简单的规则语言。
我在 Clojure 中做这个项目,所以理想情况下这个工具应该是一个 JVM 语言(Java、Scala、Clojure)的库,但其他语言或命令行工具也可以。
有几个非常酷的 NLP 项目,包括GATE、Stanford CoreNLP、NLTK等,我并不是所有这些项目的专家,所以我可能会错过我需要的工具。如果是这样,请告诉我。
请注意,我正在使用多种语言并执行非常不同的任务,因此具体语言的具体词形还原器、词干分析器、拼写错误校正器等不符合我的需求——我真的需要更通用的工具。
UPD。看来我需要提供一些我需要的更多细节/示例。
基本上,我需要一个用某种正则表达式(类似于 Java 的String.replaceAll()
)替换文本的函数,但有可能在替换字符串中使用捕获的文本。例如,在现实世界的文本中,人们经常重复字符以强调特定的单词,例如,有人可能会写“This film is sooooo boooring...”。我需要能够仅用单个字符替换这些重复的“oooo”。所以可能会有这样的规则(语法类似于我在本文前面使用的):
也就是说,替换以某些字符 ( chars1
) 开头、至少 3 个字符并可能以其他字符 ( chars2
) 结尾的单词,但字符串相似,但只有一个 . 这里的关键是我们抓住规则的左侧并在右侧使用它。
wordnet - Wordnet API 中的词干提取
我正在使用 MIT Wordnet API (http://projects.csail.mit.edu/jwi/) 在我的 Java 应用程序中使用 wordnet。我遇到以下问题:
如果我在http://wordnetweb.princeton.edu的 Wordnet 搜索中搜索“签名” ,我会得到“签名”作为形容词(例如签名书)和“签名”作为动词。完美的。
但是,当我使用 MIT API 时,我只会得到形容词。我知道这是由于词干,所以我使用 MIT API 中可用的 wordnet 词干分析器并获得“符号”。好的。然而,“符号”现在也可以是名词……事情可能会变得相当复杂。
有没有一种“简单”的方法可以通过 API 获得与 Wordnet Search Web 界面相同的结果?我不介意我是否使用其他 API。
谢谢!
Krt_马耳他
php - 用于站点搜索的 Porter Stemmer
我在我的网站上使用http://tartarus.org/~martin/PorterStemmer/提供的 Porter Stemmer 词干算法的 PHP 版本作为搜索引擎。
问题是我刚刚注意到它会将“有趣”之类的词更改为“有趣”,这意味着正确的匹配项不会显示在搜索结果中。
Porter Stemmer 算法是否适合站点搜索,是否有更好的搜索算法,我该如何克服我的问题?
r - R的文本挖掘包...添加新函数getTransformation
我正在尝试添加一个使用表格查找方法工作的新词干分析器。如果 h 是包含词干提取操作的散列,则其编码如下:在词干提取之前将键作为词,在词干之后作为词的值。
我想理想地添加一个自定义哈希,允许我执行以下操作
myCorpus = tm_map(myCorpus, replaceWords, h)
replaceWords 函数应用于 myCorpus 中的每个文档,并使用哈希来阻止文档的内容
这是我的 replaceWords 函数的示例代码
尽管这可行,但转换后的语料库不再包含“TextDocument”或“PlainTextDocument”类型的内容,而是“character”类型的内容
我尝试使用
但这在尝试运行时给了我一个错误。
在 R 的 tm 包的早期版本中,我确实看到了一个允许同义词和基于 WORDNET 的替换的 replaceWords 函数。但是我在当前版本的 tm 包中不再看到它(尤其是当我调用函数 getTransformations() 时)
有没有人对我如何实现这一点有想法?
任何帮助是极大的赞赏。
干杯,希瓦尼
谢谢, Shivani Rao
search - 从“牙科”等查询中获取“牙科”、“牙医”等词的正确方法(反之亦然)
我对词干有些熟悉,但是我被指定用于项目的词干库在我想查找相关词的情况下效果不佳,例如如果我对其中任何一个进行查询:
“牙科”、“牙医”、“牙科”
我应该为其他人找一场比赛。我一直在研究这个,我正在学习我什至不知道存在的词性,比如 pertainyms 和 troponyms 所以我想知道是否没有一个图书馆可以在所有这些之间进行映射可以返回我正在寻找的那种匹配的不同词性?
我一直在寻找这个,并没有找到很多我能理解的东西。我可能不知道正确的术语等,如果有人能指出我正确的方向,我将不胜感激。
nlp - 词干化和去复数化之间的区别
理解字符串匹配:词干化和去复数化之间的确切区别是什么?
还是他们的意思是一样的?