将文档中汉字转化为拼音并进行频数统计

该项目使用Python的pypinyin库从txt文档中读取汉字,将其转换为拼音并统计每个拼音的出现次数。程序首先打开文件,然后创建一个哈希表用于存储拼音及其频率。遍历文件中的每个字符,判断是否为汉字,并将汉字转换为拼音。如果拼音已存在于哈希表中,其计数增加;否则,创建新的条目。最后,根据频率对哈希表排序,并将频率大于等于5的拼音及其频率写入result.txt文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将文档中汉字转化为拼音并进行频数统计

记录一下做过的小项目,项目要求从txt文档中读取数据,将其中的汉字转化为拼音并统计每个拼音出现的次数(不对注音做要求)。

from pypinyin import pinyin, lazy_pinyin, Style

f = open('./character_convert/sentence.txt') #打开文件 
Hashtable = dict() #创建空哈希表
while (1):
    c = f.read(1) #读取一个字符
    if not c:
        break #若读到文件结尾则终止
    if u'\u4e00' <= c <= u'\u9fff':
        # 若读取字符为汉字
        cp = lazy_pinyin(c)[0] #转为拼音,lazy_pinyin返回列表,我们保持字符串
        # print(cp)
        if cp in Hashtable.keys():
            #若该拼音已经在哈希表中,则计数加一
            Hashtable[cp]+=1
        else:
            #否则创建该项
            Hashtable[cp]=1

Hashtable = sorted(Hashtable.items(), key=lambda item:item[1], reverse=True) #根据value值对哈希表排序
# print(Hashtable)

with open("result.txt","w") as f:
    # 按条件保存需要的条目
    for item in Hashtable:
        if item[1] >= 5:
            f.write(item[0]+' : '+str(item[1])+'\n')
        else:
            break
print('done...')

补充:

def sq(x):
    return x*x
lambda x: x*x

可以用lambda函数表示一些简单的函数
这里的

 key=lambda item:item[1]

传入item,返回item[1]。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值