7-35 詞頻統計 (30 分)
請編寫程式,對一段英文文字,統計其中所有不同單詞的個數,以及詞頻最大的前10%的單詞。
所謂「單詞」,是指由不超過80個單詞字元組成的連續字串,但長度超過15的單詞將只擷取保留前15個單詞字元。而合法的「單詞字元」為大小寫字母、數字和下劃線,其它字元均認為是單詞分隔符。
輸入給出一段非空文字,最後以符號#
結尾。輸入保證存在至少10個不同的單詞。
在第一行中輸出文字中所有不同單詞的個數。注意「單詞」不區分英文大小寫,例如「pat」和「pat」被認為是同乙個單詞。
隨後按照詞頻遞減的順序,按照詞頻:單詞
的格式輸出詞頻最大的前10%的單詞。若有並列,則按遞增字典序輸出。
this is a test.
the word "this" is the word with the highest frequency.
longlonglonglongword should be cut off, so is considered as the same as longlonglonglonee. but this_8 is different than this, and this, and this...#
this line should be ignored.
23
5:this
4:is
題意:略;
題解:水題,看**吧,**裡有解釋。
#include #include #include #include using namespace std;
typedef pairpa;
mapmp;
vectorv;
bool cmp(pa x,pa y)
int main()
for (int i = 0; i < s.size();i++)
else if(w!="") mp[w]++;//注意w是空不能作為乙個字串
w="";
}} if(w.size()>15)
else if(w!="") mp[w]++;//注意w是空不能作為乙個字串
if(s[s.size()-1]=='#') break;
} int x=mp.size()*0.1;
cout << mp.size() << endl;
map::iterator it;
for (it=mp.begin();it!=mp.end();it++) v.push_back(*it);
sort(v.begin(),v.end(),cmp);//按題目裡說的排序
for (int i = 0; i < x;i++)
return 0;
}
7 35 詞頻統計 (30 分)
請編寫程式,對一段英文文字,統計其中所有不同單詞的個數,以及詞頻最大的前10 的單詞。所謂 單詞 是指由不超過80個單詞字元組成的連續字串,但長度超過15的單詞將只擷取保留前15個單詞字元。而合法的 單詞字元 為大小寫字母 數字和下劃線,其它字元均認為是單詞分隔符。輸入格式 輸入給出一段非空文字,最...
7 1 詞頻統計 30 分
請編寫程式,對一段英文文字,統計其中所有不同單詞的個數,以及詞頻最大的前10 的單詞。所謂 單詞 是指由不超過80個單詞字元組成的連續字串,但長度超過15的單詞將只擷取保留前15個單詞字元。而合法的 單詞字元 為大小寫字母 數字和下劃線,其它字元均認為是單詞分隔符。輸入給出一段非空文字,最後以符號 ...
習題5 13 詞頻統計 30分
請編寫程式,對一段英文文字,統計其中所有不同單詞的個數,以及詞頻最大的前10 的單詞。所謂 單詞 是指由不超過80個單詞字元組成的連續字串,但長度超過15的單詞將只擷取保留前15個單詞字元。而合法的 單詞字元 為大小寫字母 數字和下劃線,其它字元均認為是單詞分隔符。輸入給出一段非空文字,最後以符號 ...