我想在java中構建倒排索引。我有1400個文本文件的cran數據。 我能夠計算每個術語/單詞的頻率。我已經能夠返回一個單詞出現在整個集合中的次數,但我一直無法返回該單詞出現在哪個文檔中。這是迄今爲止的代碼:如何在java中創建倒排索引
我希望輸出以下形式 TERM1:DOC1:2,DOC2:3 TERM2:DOC1:3,DOC4:1 ...............等
這裏術語是一個字在一個doc文件和文檔1:2表示TERM1出現在文檔1 2倍
public static void main(String[]args) throws FileNotFoundException{
Map<String, Integer> m = new HashMap<>();
String wrd;
for(int i=1;i<=2;i++){
//FileInputStream tdfr = new FileInputStream("D:\\logs\\steem"+i+".txt");
Scanner tdsc=new Scanner(new File("D:\\logs\\steem"+i+".txt"));
while(tdsc.hasNext()){
// m.clear();
Integer docid=i;
wrd=tdsc.next();
//Vector<Integer> vPosList = p.hPosList.get(wrd);
Integer freq=m.get(wrd);
//Integer doc=m1.get(i);
//System.out.println(m.get(wrd));
m.put(wrd, (freq == null) ? 1 : freq + 1);
}
System.out.println(m.size() + " distinct words" + " steem" +i);
System.out.println("Doc" +i+""+m);
//System.out.println("Doc"+i+""+m1);
m.clear();
tdsc.close();
}
//System.out.println(m.size() + " distinct words");
//System.out.println(m);
// System.out.println(m1);
}
}
HTTP:// ST ackoverflow.com/questions/12511543/how-to-build-a-simple-inverted-index –