【发布时间】:2015-12-26 12:26:25
【问题描述】:
假设有三个文档。 Doc1:大家好,我是李。你好。 Doc2:干得好,孩子。 Doc3:嗨,男孩。我还年轻。
我尝试用 Lucene5.3 获取每个文档中每个词条的词频。
我想要得到的结果: 文件1: 嗨 2 每个人 1 我 1 我是 1 李1
1 IndexReader reader = DirectoryReader.open(FSDirectory.open(new File(iNDEX_DIR2).toPath()));
2 int num_doc = reader.numDocs();
3 for(int docNum=0; docNum<num_doc; docNum++){
4 try{
5 Document doc = reader.document(docNum);
6 System.out.println("Processing file:"+doc.get("filename"));
7
8 Terms termVector = reader.getTermVector(docNum, "contents");
9 TermsEnum itr = termVector.iterator();
10 BytesRef term = null;
11
12 while((term = itr.next()) != null){
13 try{
14 String termText = term.utf8ToString();
15 Term termInstance = new Term("contents",term);
16 long termFreq = reader.totalTermFreq(termInstance);
17 long docCount = reader.docFreq(termInstance);
18
19 System.out.println("term: "+termText+", termFreq = "+termFreq+", docCount = "+docCount);
20 }catch(Exception e){
21 System.out.println(e);
22 }
23 }
我得到特定术语的总术语频率。 谁能帮帮我?
谢谢!
【问题讨论】: