python 統計句子中的詞頻次數
阿新 • • 發佈:2019-01-23
題目內容:
對於一個已分詞的句子(可方便地擴充套件到統計檔案中的詞頻):
我/是/一個/測試/句子/,/大家/趕快/來/統計/我/吧/,/大家/趕快/來/統計/我/吧/,/大家/趕快/來/統計/我/吧/,/重要/事情/說/三遍/!
可以用collections模組中的Counter()函式方便地統計詞頻,例如可用如下程式碼:
import collections s = "我/是/一個/測試/句子/,/大家/趕快/來/統計/我/吧/,/大家/趕快/來/統計/我/吧/,/大家/趕快/來/統計/我/吧/,/重要/事情/說/三遍/!/" s_list = s.split('/') [s_list.remove(item) for item in s_list if item in ',。!”“'] collections.Counter(s_list)
這個問題也可以通過字典來解決,請編寫用字典解決本問題的程式,為便於OJ系統自動判斷,程式最後輸出字串中包含的不同詞的個數。
程式參考框架
def countfeq(s):
... ...
return a dict
if __name__ == "__main__":
s = input()
... ...
s_dict = countfeq(s)
print(len(s_dict.keys()))
輸入格式:
字串
輸出格式:
整數
輸入樣例(因為oj系統限制,測試用例設為判斷英文單詞個數,請注意英文標點,假設僅包含,和.):
Spring/is/coming/./Spring/is/coming/.
輸出樣例:
3
時間限制:500ms記憶體限制:32000kbdef countfeq(s): list=s.split('/') [list.remove(item) for item in list if item in ', . ) :'] dict={} for i in list: if i in dict: dict[i]+=1 else: dict[i]=1 return dict if __name__ == "__main__": s = input() s_dict = countfeq(s) print(len(s_dict.keys()))