from wordcloud import WordCloud, STOPWORDS
import numpy as np
from PIL import Image
text = open('../datasets/06_alice.txt').read()
alice_mask = np.array(Image.open('../datasets/06_alice_mask.png'))
stopwords = set(STOPWORDS)
stopwords.add('said')
import matplotlib.pyplot as plt
import platform
from matplotlib import font_manager, rc
path="C:/Windows/Fonts/malgun.ttf"
if platform.system() == "Darwin":
rc("font", family="Arial Unicode MS")
elif platform.system() == "Windows":
font_name = font_manager.FontProperties(fname=path).get_name()
rc("font", family=font_name)
else:
print("Unknown system. sorry~")
%matplotlib inline
plt.figure(figsize=(8, 8))
plt.imshow(alice_mask, cmap=plt.cm.gray, interpolation='bilinear')
plt.axis('off')
plt.show()
wc = WordCloud(
background_color="white", max_words=2000, mask=alice_mask, stopwords=stopwords
)
wc = wc.generate(text)
wc.words_
max_words: 표현할 최대 단어수
plt.figure(figsize=(12, 12))
plt.imshow(wc, interpolation="bilinear")
plt.axis('off')
plt.show()
text = open('../datasets/06_a_new_hope.txt').read()
text = text.replace('HAN', 'Han')
text = text.replace("LUKE'S", "Luke")
mask = np.array(Image.open('../datasets/06_stormtrooper_mask.png'))
stopwords = set(STOPWORDS)
stopwords.add('int')
stopwords.add('ext')
wc = WordCloud(
max_words=1000, mask=mask, stopwords=stopwords, margin=10, random_state=1
).generate(text)
default_colors = wc.to_array()
import random
def grey_color_func(
word, font_size, position, orientation, random_State=None, **kwargs):
return "hsl(0, 0%%, %d%%)" % random.randint(60, 100)
plt.figure(figsize=(12, 12))
plt.imshow(
wc.recolor(color_func=grey_color_func, random_state=3), interpolation='bilinear'
)
plt.axis('off')
plt.show()
육아휴직관련 법안 대한민국 국회 제 1809890호 의안
import nltk
from konlpy.corpus import kobill
doc_ko = kobill.open("1809890.txt").read()
from konlpy.tag import Twitter
t = Twitter()
tokens_ko = t.nouns(doc_ko)
tokens_ko
ko = nltk.Text(tokens_ko, name='대한민국 국회 의안 제 1809890호')
print(len(ko.tokens))
print(len(set(ko.tokens)))
ko.vocab()
plt.figure(figsize=(12, 6))
ko.plot(50)
plt.show()
한글 stopword는 상황에 따라 복잡해서 일단 그냥 작성
stop_words = [ ".", "(", ")", ",", "'", "%", "-", "X", ").", "x",
"의", "자", "에", "안", "번", "호", "을", "이", "다", "만", "로", "가", "를"]
ko = [each_word for each_word in ko if each_word not in stop_words]
ko
ko = nltk.Text(ko, name="대한민국 국회 의안 제 1809890호")
plt.figure(figsize=(12, 6))
ko.plot(50)
plt.show()
ko.count("초등학교")
plt.figure(figsize=(12, 6))
ko.dispersion_plot(["육아휴직", "초등학교", "공무원"])
ko.concordance("초등학교")
data = ko.vocab().most_common(150)
wordcloud = WordCloud(
font_path="C:/Windows/Fonts/malgun.ttf",
relative_scaling=0.2,
background_color='white',
).generate_from_frequencies(dict(data))
plt.figure(figsize=(12, 8))
plt.imshow(wordcloud)
plt.axis('off')
plt.show()
"이 글은 제로베이스 데이터 취업 스쿨 강의를 듣고 작성한 내용으로 제로베이스 데이터 취업 스쿨 강의 자료 일부를 발췌한 내용이 포함되어 있습니다."