如何使用Lucene获得频繁出现的短语
问题内容:
我想与Lucene交流一些经常出现的短语。我从TXT文件中获取了一些信息,并且由于没有短语信息而失去了很多上下文,例如“信息检索”被索引为两个单独的词。
怎样获得这样的短语?我在互联网上找不到任何有用的东西,所有的建议,链接,提示,尤其是示例都值得赞赏!
编辑: 我只按标题和内容存储我的文档:
Document doc = new Document();
doc.add(new Field("name", f.getName(), Field.Store.YES, Field.Index.NOT_ANALYZED));
doc.add(new Field("text", fReader, Field.TermVector.WITH_POSITIONS_OFFSETS));
因为对于我而言,最重要的是文件的内容。标题通常根本不是描述性的(例如,我有很多PDF学术论文,其标题是代码或数字)。
我迫切需要从文本内容中索引出现的短语,现在我看到这种简单的“词袋”方法效率不高。
问题答案:
朱莉娅,看来您正在寻找的是n-gram,特别是Bigrams(也称为搭配)。
这是关于从Manning和Schutze的统计自然语言处理基础中找到搭配(PDF)的一章。
为了使用Lucene做到这一点,我建议将Solr与ShingleFilterFactory一起使用。请参阅此讨论以获取详细信息。