把李白的诗集看成一个长字符串(保存在:libai.txt 中),得到李白诗词内容中的所有的汉字(不是txt中的所有文字); 进一步得到其中的不重复汉字; 最后打印所有汉字的个数、不重复汉字的个数、以及不重复汉字,打印汉字时要求每行10个汉字,汉字之间以2个空格分开。 利用字典对李白诗词的进行字频统计,统计每个字出现的次数,并对字频进行归一化处理(即除以诗词数量),然后输出字频统计结果,输出显示时根据字频降序排列,显示前50个高频词及频率,并注意对齐。
时间: 2024-03-24 21:40:26 浏览: 21
好的,这是一个比较复杂的文本处理问题,需要使用Python的文件读写、字符串处理、列表、字典等知识。以下是一种基于Python的解决方案:
```python
# 读取李白的诗集
with open("libai.txt", "r", encoding="utf-8") as f:
content = f.read()
# 得到所有汉字
import re
chinese_chars = re.findall("[\u4e00-\u9fa5]", content)
# 得到不重复汉字
unique_chars = list(set(chinese_chars))
# 打印所有汉字的个数、不重复汉字的个数、以及不重复汉字
print(f"所有汉字的个数为:{len(chinese_chars)}")
print(f"不重复汉字的个数为:{len(unique_chars)}")
print("不重复汉字如下:")
for i, char in enumerate(unique_chars):
if i % 10 == 0:
print()
print(f"{char} ", end="")
print()
# 字频统计
char_freqs = {}
poems = content.split("------")
for poem in poems:
poem_chars = re.findall("[\u4e00-\u9fa5]", poem)
for char in poem_chars:
if char not in char_freqs:
char_freqs[char] = 0
char_freqs[char] += 1
# 归一化处理
num_poems = len(poems)
for char in char_freqs:
char_freqs[char] /= num_poems
# 按照字频降序排列
sorted_char_freqs = sorted(char_freqs.items(), key=lambda x: x[1], reverse=True)
# 输出前50个高频词及频率
print("前50个高频词及频率如下:")
for i, (char, freq) in enumerate(sorted_char_freqs[:50]):
print(f"{i+1:<2}. {char:<2} {freq:.4f}")
```
以上程序会先读取李白的诗集,然后得到其中的所有汉字和不重复汉字,并打印所有汉字的个数、不重复汉字的个数、以及不重复汉字。接着使用字典对李白诗词进行字频统计,并对字频进行归一化处理。最后按照字频降序排列,并输出前50个高频词及频率。
相关推荐
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)