python 统计句子中的词频次数

版权声明: https://blog.csdn.net/lyw_321/article/details/79793598

题目内容:


对于一个已分词的句子(可方便地扩展到统计文件中的词频):

我/是/一个/测试/句子/,/大家/赶快/来/统计/我/吧/,/大家/赶快/来/统计/我/吧/,/大家/赶快/来/统计/我/吧/,/重要/事情/说/三遍/!

可以用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内存限制:32000kb

def 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()))



猜你喜欢

转载自blog.csdn.net/lyw_321/article/details/79793598