Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有人知道如何在Lucene 3.6中使用Wordnet扩展查询吗?_Java_Lucene_Information Retrieval_Wordnet - Fatal编程技术网

Java 有人知道如何在Lucene 3.6中使用Wordnet扩展查询吗?

Java 有人知道如何在Lucene 3.6中使用Wordnet扩展查询吗?,java,lucene,information-retrieval,wordnet,Java,Lucene,Information Retrieval,Wordnet,我在org.apache.lucene.analysis.synonym中找到了类WordnetSynonymParser,但无论是在API中还是在google中都没有使用它的例子。有人有这方面的经验吗 谢谢大家! 编辑:我知道以前有这个类,但在3.6版中它消失了 我尝试: try { FileReader rulesReader = new FileReader("wn/wn_s.pl"); Synony

我在org.apache.lucene.analysis.synonym中找到了类WordnetSynonymParser,但无论是在API中还是在google中都没有使用它的例子。有人有这方面的经验吗

谢谢大家!

编辑:我知道以前有这个类,但在3.6版中它消失了

我尝试:

           try {
                   FileReader rulesReader = new FileReader("wn/wn_s.pl");
               SynonymMap.Builder parser = null;
               parser = new WordnetSynonymParser(true, true, analyzer);
               ((WordnetSynonymParser)parser).add(rulesReader);          
               synonymMap = parser.build();
            } catch (Exception e) {
                            e.printStackTrace();
                            System.exit(1);
            }
但我得到了以下错误:

java.text.ParseException: Invalid synonym rule at line 109
        at org.apache.lucene.analysis.synonym.WordnetSynonymParser.add(WordnetSynonymParser.java:75)
        at pirServer.QueryClassifier.<init>(QueryClassifier.java:77)
        at pirServer.PIRServer.main(PIRServer.java:32)
Caused by: java.lang.IllegalArgumentException: term: course of action analyzed to a token with posinc != 1
        at org.apache.lucene.analysis.synonym.SynonymMap$Builder.analyze(SynonymMap.java:131)
        at org.apache.lucene.analysis.synonym.WordnetSynonymParser.parseSynonym(WordnetSynonymParser.java:92)
        at org.apache.lucene.analysis.synonym.WordnetSynonymParser.add(WordnetSynonymParser.java:67)
        ... 2 more 
java.text.ParseException:第109行的同义词规则无效
位于org.apache.lucene.analysis.synonym.WordNetsynnonymparser.add(WordNetsynnonymparser.java:75)
位于pirServer.QueryClassifier。(QueryClassifier.java:77)
位于pirServer.pirServer.main(pirServer.java:32)
原因:java.lang.IllegalArgumentException:term:使用posinc对令牌分析的操作过程!=1.
位于org.apache.lucene.analysis.synonym.SynonymMap$Builder.analysis(SynonymMap.java:131)
在org.apache.lucene.analysis.synonym.WordNetsynnonymparser.parseSynonym(WordNetsynnonymparser.java:92)上
位于org.apache.lucene.analysis.synonym.WordNetsynnonymparser.add(WordNetsynnonymparser.java:67)
... 还有两个

我正在做一件类似的事情,只是阅读了文档-因此同义词过滤器文档中的相关警告非常新鲜:

“”此令牌流无法正确处理位置增量!=1,即,您应该在筛选出停止词“”之前放置此筛选器

您传递给WordNetSynnonyMParser的分析器(您在帖子中没有描述)可能会删除停止词(大多数情况下都是这样),从而导致:


java.lang.IllegalArgumentException:term:使用posinc分析令牌的行动过程!=1

Edi Bice回答帮助我解决了这个问题。对于其他可能正在寻找的人,使用lucene 4.0,使用空字符集初始化解析器

WordnetSynonymParser parse = new WordnetSynonymParser(true, true, new StandardAnalyzer(CharArraySet.EMPTY_SET));

是否可以使用lucene 3.6通过wordnet执行查询扩展??