0
我已經構建了倒排索引(wordTodocumentQueryMap)爲files.It收集它(JAVA)的數量包含每個appeear如何計算的文檔3個字出現在
如Word文件沒有和頻率這個:
experiment 1:1 17:1 30:1 39:1 52:1 109:2
*************
empirical 1:1 38:3 58:1 109:1 110:1
*************
flow: 1:1 2:6 3:2 4:3 6:1 7:3 9:3 16:1 17:1
現在我需要做查詢(幾乎3個單詞),結果應該是所有單詞出現的文檔。爲結果(實驗經驗流量)應該是
1 : 3
其中爲1的文檔否和3是相加術語頻率查詢詞語
但我的結果是:
1 : 3 2 : 6 3 : 2 4 : 3 6 : 1 7 : 3 9 : 3 16 : 1 17 : 2
有它枚舉每個字
這裏的所有文件的問題是,我走到這一步,
代碼10public static TreeMap<Integer, Integer> FileScore=new TreeMap<>();
在主
for(Map.Entry<String, Map<Integer,Integer>> wordTodocument : wordTodocumentQueryMap.entrySet())
{
Map<Integer, Integer> documentToFrecuency_value = wordTodocument.getValue();
for(Map.Entry<Integer, Integer> documentToFrecuency : documentToFrecuency_value.entrySet())
{
int documentNo = documentToFrecuency.getKey();
int wordCount = documentToFrecuency.getValue();
int score=getScore(documentNo);
FileScore.put(documentNo, score+wordCount);
}
}
//print the score
for(Map.Entry<Integer,Integer> FileToScore : FileScore.entrySet())
{
int documentNo = FileToScore.getKey();
int Score = FileToScore.getValue();
System.out.print(documentNo +" : "+ Score+"\t");
}
public static int getScore (int fileno){
if(FileScore.containsKey(fileno))
return FileScore.get(fileno);
return 0;
}
您確定要在結果中使用'17:2'嗎?如果三個單詞都必須全部出現,那麼結果如何包括2的計數(分數,頻率)? –
我改正了,謝謝 –