我有大約1500個文檔的集合。我通過每個文檔解析並提取令牌。這些令牌存儲在散列表(作爲關鍵字)中,並且它們在集合中出現的總次數(即頻率)被存儲爲值。構建Java邏輯中的倒排索引
我必須擴展它來構建倒排索引。也就是說,術語(key)|它發生的文件數量 - > DocNo |該文件中的頻率。對於exmple,
Term DocFreq DocNum TermFreq
data 3 1 12
23 31
100 17
customer 2 22 43
19 2
目前,我已經在Java中之後,
hashmap<string,integer>
for(each document)
{
extract line
for(each line)
{
extract word
for(each word)
{
perform some operations
get value for word from hashmap and increment by one
}
}
}
我必須建立在這個代碼。我無法真正想到實現倒排索引的好方法。到目前爲止,我認爲有價值的二維數組。所以這個術語是關鍵,價值(即二維數組)將存儲docId和termFreq。
請讓我知道我的邏輯是否正確。
我不明白你想要做什麼。什麼是DocFreq,DocNum和TermFreq?什麼應該是你的倒排索引的關鍵和價值? –
我有一個文件集合。我解析每個文檔並提取每個單詞。現在對於每個單詞,我必須存儲/計算以下信息: 術語(即單詞),DocFreq(此特定單詞的文檔數量發生) - > DocNum和TermFreq(文檔ID和出現頻率在那份文件中)。 因此,例如,「數據」一詞出現在3(DocFreq)文檔中。這3個文件是1,23,100(DocNum),在DocNum 1'數據'出現12次(TermFreq),DocNum 23'數據'出現31次,而DocNum 100'數據'出現17次。 – aquafatz