从Solr核心中提取流行术语

从Solr核心中提取流行术语,solr,Solr,我有一个Apache Solr core,我需要从中提取流行术语,我已经知道,Apache Solr,但我没有得到我想要的,例如,当我尝试使用luke获取流行术语时,在结果集中应用stopwords后,我得到了一堆单词,如: http、img、que等 而我真正想要的是: 奥巴马、Metallica、三星等 有没有更好的方法在Solr中实现这一点?我是否遗漏了一些应该用来实现这一点的东西 谢谢好吧,这有点不确定。 首先,您需要从索引中刻面并找到“流行术语”,然后将所有不有用的项目(如http、i

我有一个Apache Solr core,我需要从中提取流行术语,我已经知道,Apache Solr,但我没有得到我想要的,例如,当我尝试使用luke获取流行术语时,在结果集中应用stopwords后,我得到了一堆单词,如:

http、img、que等

而我真正想要的是:

奥巴马、Metallica、三星等

有没有更好的方法在Solr中实现这一点?我是否遗漏了一些应该用来实现这一点的东西


谢谢

好吧,这有点不确定。 首先,您需要从索引中刻面并找到“流行术语”,然后将所有不有用的项目(如http、img、时间、内容、时间等)添加到停止词列表中,并重新编制索引,以获取您关心的精华数据。我不认为有一种更容易了解流行名称的方法,除非您可以在索引过程中根据自定义名词词典反弹数据(顺便提一下,这是一个选项)-您可以选择通过自定义标记过滤器(看看stopword过滤器的工作原理)只索引名称,并拥有自己的nowns.txt文件与自己的名词过滤器一起使用,在这种情况下,只允许词典中的单词进入索引,而这种方法只有在已知名词列表有限的情况下才可行。

从文本中查找相关单词并不容易。我要深入了解的第一件事是Solr的自然语言处理(NLP)。这是一个起点。阅读这一页时,你会绊倒在提取名词和动词的句子上,这可能已经对你有所帮助了

在运行该程序的过程中,您将需要安装其他软件(Apache的OpenNLP项目),因此在阅读Solr的wiki之后,可能是下一步

为了得到一个感觉什么是可能的,你应该看看这个家伙。在那里,您可以粘贴一个示例文本,并从中提取相关单词和术语

这里有一些你可以看一看,以便进一步阅读


如果沿着这条路走下去,结果不如预期或不如要求的好,那么您可能会走得更远,并开始考虑使用文本挖掘。又一次有机会与索尔交叉


在任何情况下,您都应该在Stackoverflow或web上搜索教程以及您肯定需要的操作方法


阿拉伯语更新

如果您打算将OpenNLP用于不受支持的语言(从1.5版开始即可用),则需要对OpenNLP进行语言培训。有关它的参考资料可在上找到。也许阿拉伯语社区已经有了一些东西,但我的阿拉伯语google fu没有那么好

如果你决定做这项工作并对其进行阿拉伯语培训,为什么不与项目分享你的培训呢

关于Solr/Lucene集成的更新

还有工作要做。以我的拙见,这是它将要和应该得到的。如果您比较这个问题,字段词干生成似乎相当容易。但是当支持不同的语言时,甚至词干也变得复杂。将一种语言分析到可以提取名词、动词等的程度是如此复杂,以至于整个项目都围绕着它展开


手头有一个模块/contrib,您可以简单地将其复制到solr_home/lib,这已经非常方便了。这样就不需要运行其他安装程序了。

所以你想要“只给我取名词和名字”之类的东西吗?这正是我需要的!谢谢你的建议,但我不认为这是最好的实现方式,因为停止词列表将不断增长,每次有一个项目被添加到列表中,我都必须重新索引数据,是否有任何方法可以使用停止词过滤器和术语组件或方面在运行中?我投票支持cheffe的答案。我浏览了他的答案和链接,非常有用。这是一个非常好的答案,我会投赞成票,但这意味着需要做很多工作,需要阅读很多教程和文章,而且确实需要一个很大的学习曲线,我希望得到一个稍微简单一点的答案,我的意思是这很自然,我想知道为什么它不是用solr core实现的,而不是与外部组件集成的,我说的对吗?哦,我忘了说谢谢,所以谢谢你的回答:)我还想知道propused解决方案是否适用于不同的语言,例如,我计划将其用于阿拉伯语内容,该解决方案是否支持阿拉伯语?再次感谢你的好意help@Ma穆纳尔·阿卡什我更新了我的答案,因为答案有点长:)非常感谢,你的答案和你一样令人惊讶:)非常感谢,老兄:)