与lucene索引一起使用的最佳跨语言分析器

时间:2009-06-16 11:50:08

标签: java lucene

我正在寻找有关哪个分析器与包含多种语言文档的索引一起使用的反馈。目前我正在使用简单分析器,因为它似乎处理最广泛的语言。大多数要编入索引的文档都是英文版,但偶尔会有双字节语言编入索引。

是否还有其他建议,或者我应该坚持使用简单分析器。

谢谢

6 个答案:

答案 0 :(得分:6)

根据您的描述,我假设您拥有多种语言的文档,但每个文档只有一种语言的文本。

对于这种情况,您可以使用Nutch的语言识别来获取文档的语言。然后使用相应的语言分析器进行索引要获得正确的搜索结果,您需要将语言标识应用于搜索查询并使用该分析器。

这里的好处是你将能够使用语言特定的词干分析器和停止词,提高搜索质量。索引时的额外开销应该是可以接受的。然而,语言识别无法识别正确语言的搜索查询可能会受到影响。我已经使用了这几年,结果比预期好。

对于CJK,您可以应用类似的技术,但工具可能会有所不同。

答案 1 :(得分:2)

我已经将StandardAnalyzer与非英语单词一起使用,它运行正常。它甚至可以处理重音字符。如果语言是CJK(中文,日文,韩文),俄文或德文,可能会有问题,但我怀疑大部分问题都与词汇的堵塞有关。如果您没有启用词干,则可能就足够了。

答案 2 :(得分:1)

SimpleAnalyzer真的很简单,它所做的只是小写的术语。我认为即使使用非英语语言数据,StandardAnalyzer也会比SimpleAnalyzer提供更好的结果。除了默认的英语单词之外,您还可以通过提供自定义停用词列表来略微改进它。

答案 3 :(得分:1)

纯轶事证据,但我们对我们的系统使用StandardAnalyzer版本(定制但不以任何相关方式)。我们的文件不仅可以使用不同的语言,而且文档可能包含不同语言的块(例如,想象一篇用日语写的文章,用英语发表评论),所以语言嗅探很困难。

我们的大多数文件都是英文的,但有大量的文件是中文和日文,而法文,西班牙文,葡萄牙文和韩文的文字较少。

最终结果?我们使用StandardAnalyzer,并且很少有人使用非罗马语言的系统对我们的搜索方式进行投诉。顺便说一句,我们的系统对用户有一定的“强制执行”,所以不像人们抱怨而是转移到其他地方;如果他们不开心,我们一般都知道。

因此,基于这样一个事实,即我没有被用户抱怨(非常偶然的,主要是关于中文,但没有什么严重的,而且很容易解释),对于很多情况来说似乎“足够好”。

答案 4 :(得分:1)

正确的答案取决于您的主要语言(如果有的话)。

为获得最佳的跨语言红外线性能,我会使用4/5克分析仪,它已经证明可以在许多语言上运行良好。对于英语来说,它甚至可能比SimpleAnalyzer更好。例如,请参阅http://www.eecs.qmul.ac.uk/~christof/html/publications/inrt142.pdf

I have looked into this,但从另一个角度来看。似乎没有一个全能的分析器 - 每种语言都需要自己的方法来获得最佳结果。

答案 5 :(得分:0)

首先,您应该发现您的语言是什么?例如,我的文件在 英语,日本语或波斯语。你可以通过进程找到你的文档语言 UTF-8字符。

然后,当您发现您的文档使用的语言时,您可以使用它进行分析 特定分析仪。