我有一个包含以下文件的Lucene-Index:
doc1 := { caldari, jita, shield, planet }
doc2 := { gallente, dodixie, armor, planet }
doc3 := { amarr, laser, armor, planet }
doc4 := { minmatar, rens, space }
doc5 := { jove, space, secret, planet }
因此,这5个文档使用14个不同的术语:
[ caldari, jita, shield, planet, gallente, dodixie, armor, amarr, laser, minmatar, rens, jove, space, secret ]
每学期的频率:
[ 1, 1, 1, 4, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1 ]
为了易于阅读:
[ caldari:1, jita:1, shield:1, planet:4, gallente:1, dodixie:1,
armor:2, amarr:1, laser:1, minmatar:1, rens:1, jove:1, space:2, secret:1 ]
我现在想知道的是,如何获得一组文档的术语频率向量?
例如:
Set<Documents> docs := [ doc2, doc3 ]
termFrequencies = magicFunction(docs);
System.out.pring( termFrequencies );
将导致输出:
[ caldari:0, jita:0, shield:0, planet:2, gallente:1, dodixie:1,
armor:2, amarr:1, laser:1, minmatar:0, rens:0, jove:0, space:0, secret:0 ]
删除所有零:
[ planet:2, gallente:1, dodixie:1, armor:2, amarr:1, laser:1 ]
注意,结果向量仅包含该文档集的术语频率。不是整个索引的整体频率!在整个索引中,“行星”一词出现了4次,但是文档的原始集只包含2次。
天真的实现方式是仅遍历docs
集合中的所有文档
,创建映射并计算每个术语。但是我需要一个可以与文档集大小为100.000或500.000一起使用的解决方案。
我可以使用Lucene中的某个功能来获取该术语向量吗?如果没有这样的功能,一个数据结构看起来如何像某个人可以在索引时创建以轻松快捷地获得这样的术语向量?
我不是Lucene专家,所以如果解决方案显而易见或微不足道,我感到抱歉。
也许值得一提:该解决方案对于应用于客户端搜索查询的Web应用程序应该足够快。
转到此处:http :
//lucene.apache.org/java/3_0_1/api/core/index.html并检查此方法
org.apache.lucene.index.IndexReader.getTermFreqVectors(int docno);
您将必须知道文档ID。这是一个内部的Lucene ID,通常在每次索引更新(带有删除:-)时更改。
我相信Lucene 2.xx也有类似的方法
问题内容: 我有一个具有以下格式的.txt文件, 尽管显然它要大得多,但实际上是这样。基本上,我试图总结每个单独字符串在文件中的次数(每个字母/字符串在单独的一行上,因此从技术上讲文件是C \ nV \ nEH \ n等。但是,当我尝试将这些文件转换为列表,然后使用count函数时,它会分离出字母,以使诸如’IRQ’之类的字符串为[‘\ n’I’,’R’ ,’Q’,’\ n’],这样当我计算它时,
问题内容: 对于这个新手问题,我感到很抱歉,但是我对编程还是有点陌生(从几天前开始)。基本上我想做的是保留一个文件,并保留另一个文件的所有单词出现 我知道我可以这样做: 事情是,在那之后,我想获取第二个文件,再次计算出现次数并更新第一个文件。之后,我取第三份文件,依此类推。 我在做什么,此刻工作没有任何问题(我使用,和),但它看起来相当缓慢。 我很确定使用,仅使用命令就可以有一种非常有效的方法,但
问题内容: 我不确定这是否可行,但我想计算表中唯一值的数量。我知道要计算我执行的唯一FolderID的数量: 但是我想对文件夹表中的文件夹标识和用户标识的唯一组合数进行计数。有没有办法做到这一点? 问题答案:
问题内容: 计算单词在文件中出现的次数的简便方法是什么? 问题答案: 这还将在单行中计算单词的多次出现:
问题内容: 这应该将行数,单词数和字符数计入文件中。 但这是行不通的。从输出中仅显示。 码: 我不明白发生了什么事。有什么建议? 问题答案: 不同的方法。使用字符串查找行数,单词数和字符数: 注意: 对于其他编码样式,请使用代替。 是需要设置的字符。引用这个和维基
问题内容: 我花了一些时间试图找到一种方法来计算JAR内文件夹中文件的数量。我整理了几个示例,这些示例具有不同的用途,可以完成这项工作。当我通过Eclipse运行代码时,它的计数就很好,但是在导出到JAR后,它失败并返回0。在这种情况下,我使用的文件夹路径只是“ rules /”。我将不胜感激任何建议或样品。谢谢。 编辑: 以下内容与我的原始问题不完全匹配,但是由于有了MadProgrammer,