7 44 基於詞頻的檔案相似度(30 分)

2021-09-02 01:32:16 字數 1155 閱讀 3304

本題目要求實現乙個簡化的熱門話題推薦功能,從大量英文(因為中文分詞處理比較麻煩)微博中解析出話題,找出被最多條微博提到的話題。

##輸入格式:

輸入說明:輸入首先給出乙個正整數n(≤105),隨後n行,每行給出一條英文微博,其長度不超過140個字元。任何包含在一對最近的#中的內容均被認為是乙個話題,輸入保證#成對出現。

##輸出格式:

第一行輸出被最多條微博提到的話題,第二行輸出其被提到的微博條數。如果這樣的話題不唯一,則輸出按字母序最小的話題,並在第三行輸出and k more …,其中k是另外幾條熱門話題的條數。輸入保證至少存在一條話題。

注意:兩條話題被認為是相同的,如果在去掉所有非英文本母和數字的符號、並忽略大小寫區別後,它們是相同的字串;同時它們有完全相同的分詞。輸出時除首字母大寫外,只保留小寫英文本母和數字,並用乙個空格分隔原文中的單詞。

輸入樣例:

4this is a #test of topic#.

another #test of topic.#

this is a #hot# #hot# topic

another #hot!# #hot# topic

輸出樣例:

hot2

and 1 more …

1、讀入每行的字串之後,檢索所有topic,並進行轉換

2、topic轉換的時候,注意首字母大寫,其餘字母小寫,其他字元用空格替換,並注意單詞末尾空格的刪除

3、由於要統計提及熱門話題對應的條數,但是同一條中可能多次重複熱門話題,因此選擇使用set來儲存話題條數,最後使用set的size來比較大小。

4、由於map具有自動排序功能,因此次數可以預設儲存字母序列較小的熱門話題。

#include#include#include#include#includeusing namespace std;

string change(string &s)

else

}if(s[len-1]==' ')

s.erase(s.end()-1);

return s;

}int main()

else if(it->second.size()==max)

}cout<1)

cout<<"and "

}

7 44 基於詞頻的檔案相似度 (30 分

實現一種簡單原始的檔案相似度計算,即以兩檔案的公共詞彙佔總詞彙的比例來定義相似度。為簡化問題,這裡不考慮中文 因為分詞太難了 只考慮長度不小於3 且不超過10的英文單詞,長度超過10的只考慮前10個字母。輸入格式 輸入首先給出正整數n 100 為檔案總數。隨後按以下格式給出每個檔案的內容 首先給出檔...

7 44 基於詞頻的檔案相似度 30 分

先檢查輸入的單詞是否分割正確,再進行統計。注意點 單詞大小寫不敏感 單詞長度大於2且小於等於10,以非字母分割。兩個檔案的單詞總量如果有相同的單詞,只統計一次。include include include include include include using namespace std co...

7 44 基於詞頻的檔案相似度 30分

實現一種簡單原始的檔案相似度計算,即以兩檔案的公共詞彙佔總詞彙的比例來定義相似度。為簡化問題,這裡不考慮中文 因為分詞太難了 只考慮長度不小於3 且不超過10的英文單詞,長度超過10的只考慮前10個字母。輸入格式 輸入首先給出正整數n 100 為檔案總數。隨後按以下格式給出每個檔案的內容 首先給出檔...