>  기사  >  백엔드 개발  >  Python을 사용하여 단어 구름을 생성하는 방법에 대한 튜토리얼

Python을 사용하여 단어 구름을 생성하는 방법에 대한 튜토리얼

巴扎黑
巴扎黑원래의
2017-06-23 15:33:122986검색

최종 검토로 바쁘고 scrapy 프레임워크를 작성하고 사용하는 데 시간을 보냈습니다. 오늘은 Python을 사용하여 단어 클라우드를 생성하는 방법을 소개하겠습니다. 인터넷에는 많은 단어 클라우드 생성 도구가 있지만 그 이상일 것입니다. 파이썬으로 직접 작성하는 것이 만족스럽습니다.

오늘 생성할 것은 바이두 라이브러리에서 누구나 익히 알고 있는 "Stubborn", "The Sea and the Sky" 등 20여곡의 감동적인 노래들로 이루어진 워드클라우드입니다.

사용되는 Python 라이브러리에는 jieba(중국어 단어 분할 라이브러리), wordcould, matplotlib, PIL 및 numpy가 포함됩니다.

가장 먼저 해야 할 일은 가사를 읽는 것입니다. 감동적인 노래 가사를 파일디렉토리에 저장해두었습니다.

이제 읽어봅시다

#encoding=gbklyric= ''f=open('./励志歌曲歌词.txt','r')for i in f:
    lyric+=f.read()

#encoding=gbk를 추가하는 목적은 후속 작업에서 SyntaxError: Non-UTF-8 code start with 'xc0' 오류를 방지하기 위한 것입니다. 그런 다음 jieba 단어 분할을 사용하여 세그먼트를 만듭니다. 노래를 불러 빈도가 높은 단어를 추출합니다

import jieba.analyse
result=jieba.analyse.textrank(lyric,topK=50,withWeight=True)
keywords = dict()for i in result:
    keywords[i[0]]=i[1]print(keywords)
결과 얻기:

그런 다음 wrodcloud 및 기타 라이브러리를 사용하여 단어 구름을 생성할 수 있습니다

우선 노래의 모양으로 사용할 사진을 찾습니다. 워드 클라우드

from PIL import Image,ImageSequenceimport numpy as npimport matplotlib.pyplot as pltfrom wordcloud import WordCloud,ImageColorGenerator
image= Image.open('./tim.jpg')
graph = np.array(image)
wc = WordCloud(font_path='./fonts/simhei.ttf',background_color='White',max_words=50,mask=graph)
wc.generate_from_frequencies(keywords)
image_color = ImageColorGenerator(graph)
plt.imshow(wc)
plt.imshow(wc.recolor(color_func=image_color))
plt.axis("off")
plt.show()

생성된 이미지 저장

wc.to_file('dream.png')

전체 코드:

#encoding=gbkimport jieba.analysefrom PIL import Image,ImageSequenceimport numpy as npimport matplotlib.pyplot as pltfrom wordcloud import WordCloud,ImageColorGenerator
lyric= ''f=open('./励志歌曲歌词.txt','r')for i in f:
    lyric+=f.read()


result=jieba.analyse.textrank(lyric,topK=50,withWeight=True)
keywords = dict()for i in result:
    keywords[i[0]]=i[1]print(keywords)


image= Image.open('./tim.jpg')
graph = np.array(image)
wc = WordCloud(font_path='./fonts/simhei.ttf',background_color='White',max_words=50,mask=graph)
wc.generate_from_frequencies(keywords)
image_color = ImageColorGenerator(graph)
plt.imshow(wc)
plt.imshow(wc.recolor(color_func=image_color))
plt.axis("off")
plt.show()
wc.to_file('dream.png')

위 내용은 Python을 사용하여 단어 구름을 생성하는 방법에 대한 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.