Utilice Python para darse cuenta de las estadísticas de frecuencia de palabras de un texto en inglés. Enlace de texto: https://www.philippinetimes.com/news/257886068/australia-blocks-chinese-firms-huawei-zte-from-5g-network
1. Creación de tuplas
tup1 = ('Google', 'atguigu', 1997, 2000);
tup2 = (1, 2, 3, 4, 5);
tup3 = "a", "b", "c", "d"; # No Se requieren soportes2. Creación de diccionario
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
dict = {x: x + 1 para x en el rango (10)}3. Establecer la creación de la colección
s = {'nombre', 'aa', 'bb'}
s = conjunto (secuencia) # secuencia dict, clave de suma de valor
s = {x para x en el rango (10) si x no está en el rango (5,10)}
De acuerdo con el diagrama de flujo que se muestra en la Figura 4.2, se realizan las estadísticas de frecuencia de palabras del documento y los códigos específicos se detallan en el apéndice.
Figura 4.2 Diagrama de flujo de estadísticas de frecuencia de palabras
Resultados de estadísticas de frecuencia de 3 palabras
(1) Para obtener estadísticas de frecuencia de palabras específicas, consulte el apéndice ex1_word Frequency Statistics results.xlsx y ex1_word Frequency Statistics results.txt. El primer archivo es el código escrito por mí mismo, y los datos se procesan al almacenar los resultados. Los datos en el interior están más estandarizados; el segundo archivo se refiere a la explicación del maestro y luego usa el formato de lista para almacenar el archivo cuando se almacena el archivo. .
Figura 4.3 Diagrama esquemático de estadísticas de frecuencia de palabras
Se puede ver en los documentos anteriores que las cinco frecuencias de palabras principales son the, to, y, huawei, y que, la mayoría de las cuales son pronombres demostrativos o conjunciones.
(2) Genere una imagen de nube de palabras basada en la frecuencia de palabras, como se muestra en la Figura 4.4.
Figura 4.4 Diagrama de nube de palabras
Referencia
- Tutorial de instalación y uso de Anaconda : https://zhuanlan.zhihu.com/p/32805175
- Introducción a los conceptos básicos de Python y la configuración del entorno: https://www.jianshu.com/p/8e56607b0abc
import re
file=open('ex1_news.txt',encoding='ansi')
lowerText=file.read().lower()
file.close()
arr=re.split('[ ,.+"\n]',lowerText)
voc={};
for each in arr:
if each not in voc:
voc[each]=1;
else:
voc[each]+=1;
voc.pop('');
vocSorted=sorted(voc.items(),key=lambda x:x[1],reverse=True)# 按照键值进行排序
newFile=open('ex1_词频统计结果.txt','w')
newFile.write(str(vocSorted))
newFile.close()
#根据词频生成云图
from wordcloud import WordCloud, ImageColorGenerator
from PIL import Image
import numpy as np
image=Image.open('china_map.jpg');
graph = np.array(image)
# 参数分别是指定字体、背景颜色、最大的词的大小、使用给定图作为背景形状
wc = WordCloud(font_path="C:/Windows/Fonts/simfang.ttf", background_color='white', max_words=100, mask=graph)
wc.generate_from_frequencies(voc)#根据给定词频生成词云
image_color = ImageColorGenerator(graph)
#生成图片
image=wc.to_image()
#显示图片
image.show()
#存储图片
image.save('云图1.jpg')