judgecx 发表于 2019-12-18 17:33

Python统计单词个数

Python统计单词个数我会实现我的问题是
我输入hello and boy girl 这些单词不被统计怎么写没什么思路

SuperCatCool 发表于 2019-12-18 17:41

先分割,再遍历,遍历时创建单词为key的字典,value为统计个数

MUTED 发表于 2019-12-18 17:47

问题没说清楚,是说输入这些单词应该被统计而你的代码跑出来没被统计,还是说你要实现这些单词不被统计?

0xkevin 发表于 2019-12-18 17:49

def getText():
    txt = open("1.txt", "r").read()
    txt = txt.lower()
    for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~':
      txt = txt.replace(ch, " ")   #将文本中特殊字符替换为空格
    return txt

hamletTxt = getText()
words= hamletTxt.split()
counts = {}
for word in words:                       
    counts = counts.get(word,0) + 1
items = list(counts.items())
items.sort(key=lambda x:x, reverse=True)
for i in range(10):
    word, count = items
    print ("{0:<10}{1:>5}".format(word, count))

rong1667 发表于 2019-12-18 17:55

str_1='hello and boy girl'
str_1_list=str_1.split(' ')#以空格分隔
print(len(str_1_list))

kesai 发表于 2019-12-18 18:05

我在python电子书上看到过类似的,统计汉姆雷特里的单词

kesai 发表于 2019-12-18 18:06

本帖最后由 kesai 于 2019-12-18 18:11 编辑

# @Description : 词频统计
def getText():
    txt = open('hamlet.txt', 'r').read()
    txt = txt.lower()
    for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~':
      txt = txt.replace(ch, " ")# 将文本中特殊字符替换为空格
    return txt

def taleSecond(item):
      return item


txt = getText()
words = txt.split()
counts = dict()
for word in words:
    counts = counts.get(word, 0)+1
print(counts)
items = list(counts.items())
#items.sort(key=taleSecond,reverse=True)
items.sort(key=lambda x: x, reverse=True)

for i in range(0, 10):
      word, count = items# 数组赋值,我擦
      print('{0:<10}{1:>5}'.format(word,count))

judgecx 发表于 2019-12-18 18:29

MUTED 发表于 2019-12-18 17:47
问题没说清楚,是说输入这些单词应该被统计而你的代码跑出来没被统计,还是说你要实现这些单词不被统计?

是我输入这些单词不要被统计! 不是我没跑出了
而是我不要统计这些单词

欧布奥特曼 发表于 2019-12-18 18:32

看来楼上的大大都解决了

kesai 发表于 2019-12-18 18:33

把不要统计的单词从统计结果里排除不就行啦
页: [1] 2 3
查看完整版本: Python统计单词个数