Python,找出文本中相同字符出现的次数

import re
a='ABCABADCSABBAUYIIYUyyike'
b=re.findall(r'.{1}',a)  #单个字符长度查找,返回list对象
print(b)
c=set(b)        #set去重
# list = [1, 2, 3, 4, 5,5,3,6,1]   去重
# b=[]
# for i in list:
#     if  i not in b:
#         b.append(i)
# print(b)
print(c)
print('方法1')
for i in c:
    x=0
    for j in b:
        if i==j:
            x +=1
    print('%s出现的次数%s'%(i,x))
print('方法二')
for i in c:
    print('%s出现的次数%s'% (i,b.count(i)))

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来为您介绍一下如何使用 Python 对《红楼梦》进行词云分析并统计人名出场频率前 20 名。 1. 安装所需依赖库 使用 Python 进行词云分析和人名出场频率统计需要用到一些第三方库,可以使用以下命令进行安装: ``` pip install jieba wordcloud matplotlib ``` 2. 读取《红楼梦》文本文件并进行分词处理 先使用 Python 读取《红楼梦》文本文件,然后使用 jieba 库对文本进行分词处理: ```python import jieba from collections import Counter # 读取《红楼梦》文本文件 with open('hongloumeng.txt', 'r', encoding='utf-8') as f: text = f.read() # 对文本进行分词处理 words = jieba.cut(text) ``` 3. 生成词云图 使用 wordcloud 库生成《红楼梦》的词云图: ```python from wordcloud import WordCloud import matplotlib.pyplot as plt # 生成词云图 wordcloud = WordCloud(background_color='white', width=800, height=600).generate(' '.join(words)) # 显示词云图 plt.imshow(wordcloud, interpolation='bilinear') plt.axis('off') plt.show() ``` 4. 统计人名出现频率并输出前 20 名 使用正则表达式匹配人名,然后使用 collections 库的 Counter 类统计人名出现频率并输出前 20 名: ```python import re # 使用正则表达式匹配人名 pattern = r'[\u4e00-\u9fa5]{2,4}(?:·[\u4e00-\u9fa5]{2,4})*' names = re.findall(pattern, text) # 统计人名出现频率 name_freq = Counter(names).most_common(20) # 输出前 20 名人名 for name, freq in name_freq: print(name) ``` 完整代码如下: ```python import jieba from collections import Counter from wordcloud import WordCloud import matplotlib.pyplot as plt import re # 读取《红楼梦》文本文件 with open('hongloumeng.txt', 'r', encoding='utf-8') as f: text = f.read() # 对文本进行分词处理 words = jieba.cut(text) # 生成词云图 wordcloud = WordCloud(background_color='white', width=800, height=600).generate(' '.join(words)) # 显示词云图 plt.imshow(wordcloud, interpolation='bilinear') plt.axis('off') plt.show() # 使用正则表达式匹配人名 pattern = r'[\u4e00-\u9fa5]{2,4}(?:·[\u4e00-\u9fa5]{2,4})*' names = re.findall(pattern, text) # 统计人名出现频率 name_freq = Counter(names).most_common(20) # 输出前 20 名人名 for name, freq in name_freq: print(name) ``` 运行以上代码后,可以得到《红楼梦》的词云图和人名出现频率前 20 名。需要注意的是,由于《红楼梦》文本文件可能包含一些特殊字符,因此在打开文件时需要指定编码方式为 utf-8。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值