【问题标题】:HebMorph with solr: how to use stopwordsHebMorph 与 solr:如何使用停用词
【发布时间】:2018-10-30 21:08:49
【问题描述】:

我正在开发一个应用程序,该应用程序支持使用“solr”引擎对多语言文本(包括希伯来语)进行索引和搜索。

经过大量搜索,我发现 HebMorph 是用于希伯来语的最佳插件

我的问题是带有希伯来语停用词的 HebMorph 的行为似乎与 solr 不同:

  • 使用 solr(任何语言):当我搜索停用词时,返回的结果不包括查询中存在的任何停用词。

  • 而当我搜索希伯来语术语时(在this link 之后将 HebMorh 插入 solr 后,返回的结果包括查询中所有现有的停用词。

1) 这是 HebMorph 的正常行为吗?如果是,我该如何改变它?如果不是,我应该改变什么?

2) 由于 HebMorph 不支持同义词,(正如我在他们的文档中读到的那样,这是一项未来的工作)。有没有办法以 solr 支持的方式将希伯来语的同义词用作其他语言? (即通过在 solrconfig 中添加适当的过滤器并指出同义词文件)?

提前感谢您的帮助。

【问题讨论】:

  • 请注意,您问题中的链接已损坏(链接 [1])
  • 我不确定你的意思 - 停用词不会从 Solr 返回的内容中删除 - 存储的内容与提交的内容相同。停用词在标记化后被删除,并且只影响会产生命中的内容。据我所知,由于 HebMorph 中没有特定的停用词过滤器,因此您是否有任何来自 Solr 管理下的分析页面的示例可以显示您的问题?
  • @Jayce444:我试过了,效果很好。无论如何,这是网址:github.com/synhershko/HebMorph/blob/master/SOLR-README.md
  • @MatsLindh,感谢您的回复。内容应保持原样,我的意思是,如果您发送给 solr 的查询包含停用词(在希伯来语中),它将被视为应搜索的术语,而在 Solr 中,当您添加停用词过滤器时,论文不会在文档中搜索单词。无论如何,我都会尝试提供有关分析的快照。
  • @MatsLindh,在 Solr 的 Admin 下分析分析页面中的任何短语或术语时,应用的唯一过滤器 id [addSuffixTokenFilters] 由 HebMorph 的希伯来分析器使用.

标签: solr information-retrieval hebrew synonym stop-words


【解决方案1】:

我是 HebMorph 的作者。

确实支持停用词,但您需要在词形还原器启动之前将它们过滤掉。假设最近版本的 HebMorph - 您的停用词过滤器需要在标记器之后立即进入,这意味着它还需要注意 בחל "מ 附加到停用词的字母。

现在对于所有语言的一般建议是不要删除停用词 - 至少不要在索引中,所以我建议不要在这里应用停用词过滤器。

关于同义词 - 根本问题在于 HebMorph lemmatizer 有时会将一个词扩展为多个词元,这使得应用同义词的工作更具挑战性。使用(相对)新的基于图形的分析器,现在可以做到这一点,因此我们可能也会实现这一点,并且 Lucene 的同义词过滤器将支持 OOTB。

在商业版本中,已经有一种自定义单词列表和覆盖字典定义的方法,这在希伯来语等模棱两可的语言中很有用。许多人将其用作创建同义词的方式。

【讨论】:

  • 谢谢回复,我在定义分析器后尝试使用stopFilterFactory,但是Solr无法初始化核心,给我这个异常:Analyzer class='org.apache.lucene.hebrew.HebrewQueryAnalyzer' can不能与嵌套分析工厂结合使用。请注意,我使用的是 HebMmorph 6.6.1..
  • 我怎样才能“在词形分析器启动之前过滤掉它们”?有没有办法通过托管架构中的配置来做到这一点?
  • 所以我知道没有办法通过 HebMorph @synhershko 实现我想要实现的目标?
猜你喜欢
  • 2013-06-08
  • 2015-09-08
  • 2015-12-29
  • 2015-06-05
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 2016-10-17
  • 2012-06-29
相关资源
最近更新 更多