python中的中英文字符统计

英语字符和中文字符的区别在于:大小写字符和字符个数(中文中是一个词语)

 

统计英语字符:

def getText():

    txt=open(‘halmet.txt’,’r’).read()

    txt=txt.lower()   #文中所有英语小写

    for ch in ‘!@#$%^&*()<>?”:{}|’:

        txt = txt.replace(ch,’’)

    return txt

 

halmetTxt=getText()

words=halmetTxt.split()

counts={}
for word in words:

    counts[word]=couts.get(word,0)+1

items=list(counts.items())

item.sort(key=lambda x:x[1],reverse=True)

for i  in range(10):

    word,count=items[i]

    print(‘{0:<10}{1:>5}’.format(word,count))

 

 

jieba库:中文分词

jiebe.lcut(s)  精确模式

jieba.lcut(s,cut_all=True) 全模式

jieba.lcut_for_search(s)  搜索引擎模式

 

中文字符(使用jieba库):
import jieba

f=open(‘红楼梦.txt’.’r’)

txt=f.read()

f.close()

words=jieba.lcut(txt)

counts]{}

for word in words:
     if len(word)==1:

         continue

     else:

         counts[word]=counts.get(word,0)+1

items=list(counts.items())

item.sort(key=lambda x:x[1],reverse=True)

for i  in range(10):

    word,count=items[i]

    print(‘{0:<10}{1:>5}’.format(word,count))

 

 

如查找人物名字的出现频次将会出现许多无关的答案。所以可以用excludes进一步完整代码。

添加的部分我在下面都加了括号。

 

import jiebe

(exclude={‘’,’’,’’})

f=open(‘红楼梦.txt’.’r’)

txt=f.read()

f.close()

words=jieba.lcut(txt)

counts]{}

for word in words:
     if len(word)==1:

         continue

     else:

         counts[word]=counts.get(word,0)+1

(for word in excludes:

      del(counts[word])   )

items=list(counts.items())

item.sort(key=lambda x:x[1],reverse=True)

for i  in range(10):

    word,count=items[i]

    print(‘{0:<10}{1:>5}’.format(word,count))

 

 

进一步可用wordcloud库进一步进行展示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值