2

我正在使用 Lucene 3.4 中的 SpanishAnalyzer 类。当我想解析重音单词时,我得到了一个奇怪的结果。例如,如果我解析这两个词:“comunicación”和“comunicacion”,我得到的词干是“comun”和“comunicacion”。如果我改为解析“maratón”和“maraton”,我会得到两个词的相同词干(“maraton”)。

所以,至少在我看来,同一个词“comunicación”会根据重音与否而给出不同的结果,这很奇怪。如果我搜索“comunicacion”这个词,无论它是否有重音,我都应该得到相同的结果。

我正在使用的代码是下一个:

SpanishAnalyzer sa = new SpanishAnalzyer(Version.LUCENE_34);
QueryParser parser = new QueryParser(Version.LUCENE_34, "content", sa);
String str = "comunicación";
String str2 = "comunicacion";
System.out.println("first: " + parser.parse(str)); //stem = comun
System.out.println("second: " + parser.parse(str2)); //stem = comunicacion

我发现能够获得共享“comunicacion”词干的每个单词的解决方案,无论是否带重音,是在第一步中去掉重音,然后用分析器解析它,但我没有知道这是否是正确的方法。

请问,谁能帮帮我?

4

1 回答 1

0

您是否检查了西班牙分析器使用的标记器和标记过滤器?有一种叫做 ASCIIFoldingFilter 的东西。尝试将它放在 StemFilter 之前。它将删除重音

于 2012-06-27T20:03:56.940 回答