Fazer palavra chinesa com nuvem da palavra feito com Python

Autor: Mei Haoming

1. Introdução

Na era do big data, muitas vezes vemos uma variedade de informações na mídia ou o mapa do site. Word cloud é uma forma importante de texto grande visualização de dados pode ser grande parte do texto para frases-chave destaque e mostrar vocabulário. Para visualização de texto chinês, precisamos primeiro texto palavra chinesa; em seguida, fazer texto palavra-chave Mostrar nuvem da palavra. Este artigo irá ensinar-lhe como usar Python para fazer a palavra chinesa e fazer uma nuvem da palavra, bem-vindo a seguir o tutorial passo a passo a execução.

Projeto Endereço: https://momodel.cn/workspace/5e77afb7a8a7dc6753f582b9?type=app

2. palavra chinesa

Começando com o Word 2.1 pontos

As seqüências de texto chamados de acordo com o texto que está cheio de significado Siqie em uma palavra um, a fim de facilitar a etapa seguinte da análise (estatísticas de freqüência de palavras, análise de sentimentos, etc.). O Inglês palavras e palavra vem com um espaço como um separador, em comparação com a palavra chinesa deve ser simples. Aqui vamos dar um exemplo para introduzir a palavra chinesa. Python fornece-nos com Jieba palavra biblioteca, em seguida, como usar a biblioteca ao meio-dia palavra Jieba.

import jieba

# 文本数据
text = "MomodelAI是一个支持在线数据分析和AI建模的平台。"
result = jieba.cut(text)

# 将切分好的文本用" "分开
print("分词结果: " + " ".join(result)) 

'''
分词结果: MomodelAI 是 一个 支持 在线 数据分析 和 AI 建模 的 平台 。
'''

2.2 Substantivo Especial

Para algumas condições especiais, a fim de torná-lo cortado de compartilhamento de tempo não é separado, podemos escolher para enfatizar nesses termos antes de cortar.

text = "Mo平台是一种支持模型开发与部署的人工智能建模平台。"

# 强调特殊名词
jieba.suggest_freq(('Mo平台'), True)
result = jieba.cut(text)

print("分词结果: "+" ".join(result)) 

'''
分词结果: Mo平台 是 一种 支持 模型 开发 与 部署 的 人工智能 建模 平台 。
'''

2.3 texto limpo

Alguns símbolos especiais após a divisão vai separar em palavras, estas palavras irá impactar análise depois de nós. Aqui nós podemos usar um stopwords.txt biblioteca pontuação, cortando fora os símbolos especiais para eliminar, porque "a", "de", como o comprimento de uma palavra, aparentemente sem qualquer ajuda-nos a analisar o texto. O método de tratamento é de um comprimento de uma palavra de tudo a erva daninha.

#从文件导入停用词表
stpwrdpath = "stop_words.txt"
stpwrd_dic = open(stpwrdpath, 'rb')
stpwrd_content = stpwrd_dic.read()

#将停用词表转换为list  
stpwrdlst = stpwrd_content.splitlines()
stpwrd_dic.close()
segs = jieba.cut(text)
mytext_list = []

# 文本清洗
for seg in segs:
    if seg not in stpwrdlst and seg!=" " and len(seg)!=1:
        mytext_list.append(seg.replace(" "," "))
        
cloud_text=" ".join(mytext_list) 
print("清洗后的分词结果: " + cloud_text)

'''
清洗后的分词结果: Mo平台 一种 支持 模型 开发 部署 人工智能 建模 平台
'''

3. Produção da nuvem da palavra

produção da nuvem da palavra 3,1 simples

Antes de fazer chinês da nuvem da palavra de dados de texto, primeiro use o método descrito acima será palavra texto chinês.

# 中文分词
from wordcloud import WordCloud

with open('./Mo.txt',encoding = 'utf-8', mode = 'r')as f:
    myText = f.read()

myText = " ".join(jieba.cut(myText)) 
print(myText)

Após a obtenção de um conjunto de dados de texto boa palavra, que, em seguida, usar a biblioteca para fazer WordCloud nuvem da palavra. (Nota: A Devido a si WordCloud não suporta fonte chinesa, é preciso baixar simsun.ttf, como a fonte de saída designada.)

# 制作词云
wordcloud = WordCloud(background_color="white", font_path="simsun.ttf", height=300, width = 400).generate(myText)

# 图片展示
import matplotlib.pyplot as plt
plt.imshow(wordcloud)
plt.axis("off")
plt.show()

# 将词云图片导出到当前文件夹
wordcloud.to_file("wordCloudMo.png") 

3.2 Desenhe a forma da nuvem palavra especificada

Produção especificar a forma de uma nuvem da palavra, precisamos ler a forma externa da imagem da nuvem da palavra, aqui vamos usar a biblioteca ImageIO.

# 导入词云制作库wordcloud和中文分词库jieba
import jieba
import wordcloud

# 导入imageio库中的imread函数,并用这个函数读取本地图片,作为词云形状图片
import imageio
mk = imageio.imread("chinamap.png")
w = wordcloud.WordCloud(mask=mk)

# 构建并配置词云对象w,注意要加scale参数,提高清晰度
w = wordcloud.WordCloud(width=1000, height=700,background_color='white',font_path='simsun.ttf',mask=mk,scale=15)

# 对来自外部文件的文本进行中文分词,得到string
f = open('新时代中国特色社会主义.txt',encoding='utf-8')
txt = f.read()
txtlist = jieba.lcut(txt)
string = " ".join(txtlist)

# 将string变量传入w的generate()方法,给词云输入文字
wordcloud = w.generate(string)


import matplotlib.pyplot as plt
plt.imshow(wordcloud)
plt.axis("off")
plt.show()

# 将词云图片导出到当前文件夹
w.to_file('chinamapWordCloud.png')

3.3 Os resultados mostram

4. Referências

  1. Blog: https://www.jianshu.com/p/e4b24a734ccc
  2. projeto Github: https://github.com/TommyZihao/zihaowordcloud
  3. Video Tutorial: https://www.bilibili.com/video/av53917673/?p=1

Sobre ##
Mo (URL: https: //momodel.cn) é um suporte Python artificial inteligência on-line modelagem plataforma que pode ajudá-lo a desenvolver rapidamente, formação e modelo de implantação.

Recentes Mo estão em curso relacionados com a aprendizagem de máquina cursos introdutórios e actividades de partilha de tese, o público está convidado a olhar para os nossos números para as informações mais recentes!

Publicado 36 artigos originais · ganhou elogios 4 · vê 10000 +

Acho que você gosta

Origin blog.csdn.net/weixin_44015907/article/details/105220597
Recomendado
Clasificación