자연어 처리 (KoNLP)

한글 자연어 처리 기초 - KoNLPy 및 필요 모듈의 설치

  • 콘다 콘솔에서 설치
  • KoNLPy : pip install konlpy
  • JPype1 : conda install -c conda-forge jpype1 - console에서 실행
  • JPype1는 KoNLPy 0.5.x 버전 설치시 자동 설치됨(0.4.x 버전에서 필요) -> 이후 Jupyter Notebook 재실행 필요
  • JDK 설치 : Java JDK로 검색해서 OS에 맞춰 설치
  • pip install nltk
  • pip install wordcloud
In [1]:
import nltk
In [2]:
import wordcloud
In [3]:
# nltk의 download 메소드 (학습용 데이터셋)
nltk.download()
showing info https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml
Out[3]:
True

image.png

NLTK(Natural Language Toolkit) 자연어 처리패키지

  • 교육용으로 개발된 자연어 처리 및 문서 분석용 파이썬 패키지
  • 말뭉치 (corpus) : 자연어 분석 작업을 위해 만든 샘플 문서 집합
  • 토큰생성 : 문자열을 토큰(token)단위로 나누는 작업
  • 형태소 분석 : 단어로부터 어근, 접두사, 접미사, 품사 등 다양한 언어적 속성을 파악하고 이를 이용하여 형태소를 찾아내거나 처리하는 작업
  • 품사 부착 : 품사(POS, part-of-speech)는 낱말을 문법적인 기능이나 형태, 뜻에 따라 구분한 것

꼬꼬마 모듈 사용

In [12]:
# 꼬꼬마 모듈
from konlpy.tag import Kkma
In [13]:
kkma = Kkma()
In [14]:
# 문장 분석 : 마침표가 없어도 구분
kkma.sentences('한국어 분석을 해보겠습니다. 과연 잘 나올지 두근두근')
Out[14]:
['한국어 분석을 해보겠습니다.', '과연 잘 나올지 두근두근']
In [15]:
# 명사 분석
kkma.nouns('한국어 분석을 해보겠습니다. 과연 잘 나올지 두근두근')
Out[15]:
['한국어', '분석']
In [16]:
# 형태소 분석 : 형태소(최소한의 의미 단어)
kkma.pos('한국어 분석을 해보겠습니다. 과연 잘 나올지 두근두근')
Out[16]:
[('한국어', 'NNG'),
 ('분석', 'NNG'),
 ('을', 'JKO'),
 ('해보', 'VV'),
 ('겠', 'EPT'),
 ('습니다', 'EFN'),
 ('.', 'SF'),
 ('과연', 'MAG'),
 ('잘', 'MAG'),
 ('나오', 'VV'),
 ('ㄹ지', 'ECD'),
 ('두근두근', 'MAG')]

한나눔 모듈 사용

In [17]:
# 한나눔 사용
from konlpy.tag import Hannanum
In [18]:
hannanum = Hannanum()
In [19]:
# 명사 분석
hannanum.nouns('한국어 분석을 해보겠습니다. 과연 잘 나올지 두근두근')
Out[19]:
['한국어', '분석', '두근두근']
In [20]:
# 형태소 분석
hannanum.pos('한국어 분석을 해보겠습니다. 과연 잘 나올지 두근두근')
Out[20]:
[('한국어', 'N'),
 ('분석', 'N'),
 ('을', 'J'),
 ('하', 'P'),
 ('어', 'E'),
 ('보', 'P'),
 ('겠습니다', 'E'),
 ('.', 'S'),
 ('과연', 'M'),
 ('잘', 'M'),
 ('나', 'P'),
 ('아', 'E'),
 ('오', 'P'),
 ('ㄹ지', 'E'),
 ('두근두근', 'N')]
In [22]:
# 형태소 분석 2 (품사 표시 X)
hannanum.morphs('한국어 분석을 해보겠습니다. 과연 잘 나올지 두근두근')
Out[22]:
['한국어',
 '분석',
 '을',
 '하',
 '어',
 '보',
 '겠습니다',
 '.',
 '과연',
 '잘',
 '나',
 '아',
 '오',
 'ㄹ지',
 '두근두근']

트위터 분석 Okt

In [23]:
from konlpy.tag import Okt
# from konlpy.tag import Twitter 구 버전 명령어
# t = Twitter()
In [24]:
t=Okt()
In [25]:
# 명사 분석
t.nouns('한국어 분석을 해보겠습니다. 과연 잘 나올지 두근두근')
Out[25]:
['한국어', '분석', '과연']
In [26]:
# 형태소 분석
t.morphs('한국어 분석을 해보겠습니다. 과연 잘 나올지 두근두근')
Out[26]:
['한국어', '분석', '을', '해보겠습니다', '.', '과연', '잘', '나올지', '두근두근']
In [27]:
# 형태소 분석
t.pos('한국어 분석을 해보겠습니다. 과연 잘 나올지 두근두근')
Out[27]:
[('한국어', 'Noun'),
 ('분석', 'Noun'),
 ('을', 'Josa'),
 ('해보겠습니다', 'Verb'),
 ('.', 'Punctuation'),
 ('과연', 'Noun'),
 ('잘', 'Verb'),
 ('나올지', 'Verb'),
 ('두근두근', 'Adverb')]

워드 클라우드

In [28]:
# WordCloud
# stopwords 불용어 : 분석에 의미가 없는 단어 토큰 -> 제거 필요
from wordcloud import WordCloud, STOPWORDS
In [29]:
import numpy as np
from PIL import Image 
# 이미지 관련 모듈 import

예시) 이상한 나라의 앨리스

In [142]:
# 텍스트 데이터 로드
text = open('DataScience_Ing/data/09. alice.txt').read()

# 이미지 데이터 로드
alice_mask = np.array(Image.open('DataScience_Ing/data/09. alice_mask.png'))
In [143]:
# 불용어 카운트하지 않도록 설정 -> 빈도수에 포함되지 않도록 함
stopwords = set(STOPWORDS)
stopwords.add('said') # said는 분석에 불필요해! 제거!
In [144]:
# 그림그리는 모듈 import
import matplotlib.pyplot as plt
In [145]:
# 현재 사용하는 시스템 환경에 대한 모듈
import platform 

# 폰트 경로 설정
path = 'c:/Windows/Fonts/malgun.ttf'

# 폰트 설정 (시스템 환경별로)
from matplotlib import font_manager, rc

if platform.system() == 'Darwin':
    rc('font', family = 'AppleGothic')
elif platform.system() == 'Windows':
    font_name = font_manager.FontProperties(fname=path).get_name()
    rc('font', family = font_name)
else:
    print('Unknown System :(')
    
    
%matplotlib inline    
In [146]:
plt.figure(figsize=(8,8))
plt.imshow(alice_mask, cmap=plt.cm.gray, interpolation='bilinear')
# interpolation='bilinear' -> 보간 : 알려진 지점의 값 사이에 위치한 값을 알려진 값으로부터 추정하는 것
# -> 이미지 깨지지않게 보여줌 
plt.axis('off')
plt.show()
In [147]:
# 앨리스에서 어떤 단어가 가장 많이 나왔는지 비율로 표현
wc = WordCloud(background_color='white', max_words=2000, mask=alice_mask, 
               stopwords=stopwords, collocations=False)

# collocations=False : 연어가 아니라고 설정해줘야 'said Alice가 걸러짐'! (default=True)

wc = wc.generate(text)
wc.words_
Out[147]:
{'Alice': 1.0,
 'little': 0.3176178660049628,
 'one': 0.26054590570719605,
 'know': 0.22332506203473945,
 'went': 0.20595533498759305,
 'thing': 0.19851116625310175,
 'time': 0.19106699751861042,
 'thought': 0.18858560794044665,
 'Queen': 0.18858560794044665,
 'see': 0.1662531017369727,
 'King': 0.1588089330024814,
 'well': 0.15632754342431762,
 'Turtle': 0.1513647642679901,
 'now': 0.1488833746898263,
 'head': 0.1488833746898263,
 'began': 0.14392059553349876,
 'way': 0.141439205955335,
 'Hatter': 0.141439205955335,
 'Mock': 0.13895781637717122,
 'say': 0.13647642679900746,
 'quite': 0.13647642679900746,
 'Gryphon': 0.13647642679900746,
 'think': 0.1315136476426799,
 'Rabbit': 0.12655086848635236,
 'much': 0.12655086848635236,
 'first': 0.12655086848635236,
 'voice': 0.12655086848635236,
 'Cat': 0.12406947890818859,
 'go': 0.12406947890818859,
 'come': 0.11910669975186104,
 'never': 0.11662531017369727,
 'Oh': 0.11166253101736973,
 'looked': 0.11166253101736973,
 'got': 0.11166253101736973,
 'must': 0.10918114143920596,
 'Mouse': 0.10918114143920596,
 'Duchess': 0.10421836228287841,
 'tone': 0.10421836228287841,
 'round': 0.10173697270471464,
 'came': 0.09925558312655088,
 'back': 0.09925558312655088,
 'two': 0.09925558312655088,
 'Dormouse': 0.09925558312655088,
 'great': 0.0967741935483871,
 'make': 0.09429280397022333,
 'eye': 0.08933002481389578,
 'March': 0.08684863523573201,
 'last': 0.08436724565756824,
 'nothing': 0.08436724565756824,
 'tell': 0.08436724565756824,
 'day': 0.08188585607940446,
 'large': 0.08188585607940446,
 'hand': 0.08188585607940446,
 'will': 0.08188585607940446,
 'dear': 0.0794044665012407,
 'found': 0.0794044665012407,
 'right': 0.0794044665012407,
 'long': 0.0794044665012407,
 'door': 0.0794044665012407,
 'minute': 0.0794044665012407,
 'looking': 0.0794044665012407,
 'moment': 0.07692307692307693,
 'put': 0.07692307692307693,
 'word': 0.07692307692307693,
 'Hare': 0.07692307692307693,
 'made': 0.07444168734491315,
 'White': 0.07444168734491315,
 'next': 0.07444168734491315,
 'heard': 0.07444168734491315,
 'look': 0.07196029776674938,
 'replied': 0.07196029776674938,
 'might': 0.06947890818858561,
 'three': 0.06947890818858561,
 'Caterpillar': 0.06947890818858561,
 'seemed': 0.06699751861042183,
 'going': 0.06699751861042183,
 'good': 0.06699751861042183,
 'poor': 0.06699751861042183,
 'away': 0.06451612903225806,
 'without': 0.06451612903225806,
 'upon': 0.06451612903225806,
 'course': 0.06451612903225806,
 'rather': 0.062034739454094295,
 'soon': 0.062034739454094295,
 'yet': 0.062034739454094295,
 'took': 0.05955334987593052,
 'take': 0.05955334987593052,
 'sure': 0.05955334987593052,
 'sort': 0.05707196029776675,
 'felt': 0.05707196029776675,
 'half': 0.05707196029776675,
 'added': 0.05707196029776675,
 'getting': 0.05459057071960298,
 'another': 0.05459057071960298,
 'Let': 0.05459057071960298,
 'find': 0.05459057071960298,
 'jury': 0.05459057071960298,
 'wish': 0.052109181141439205,
 'question': 0.052109181141439205,
 'side': 0.052109181141439205,
 'till': 0.052109181141439205,
 'arm': 0.052109181141439205,
 'use': 0.04962779156327544,
 'anything': 0.04962779156327544,
 'end': 0.04962779156327544,
 'please': 0.04962779156327544,
 'face': 0.04962779156327544,
 'cried': 0.04962779156327544,
 'feet': 0.04714640198511166,
 'tried': 0.04714640198511166,
 'even': 0.04714640198511166,
 'house': 0.04714640198511166,
 'tea': 0.04714640198511166,
 'eat': 0.04714640198511166,
 'curious': 0.04714640198511166,
 'old': 0.04714640198511166,
 'wonder': 0.04466501240694789,
 'table': 0.04466501240694789,
 'enough': 0.04466501240694789,
 'something': 0.04466501240694789,
 'Soup': 0.04466501240694789,
 'court': 0.04466501240694789,
 'spoke': 0.04218362282878412,
 'perhaps': 0.04218362282878412,
 'talking': 0.04218362282878412,
 'begin': 0.04218362282878412,
 'sat': 0.04218362282878412,
 'asked': 0.04218362282878412,
 'Bill': 0.04218362282878412,
 'pig': 0.04218362282878412,
 'ran': 0.03970223325062035,
 'air': 0.03970223325062035,
 'bit': 0.03970223325062035,
 'turned': 0.03970223325062035,
 'high': 0.03970223325062035,
 'garden': 0.03970223325062035,
 'indeed': 0.03970223325062035,
 'hastily': 0.03970223325062035,
 'change': 0.03970223325062035,
 'seen': 0.03722084367245657,
 'near': 0.03722084367245657,
 'idea': 0.03722084367245657,
 'saying': 0.03722084367245657,
 'low': 0.03722084367245657,
 'leave': 0.03722084367245657,
 'gave': 0.03722084367245657,
 'speak': 0.03722084367245657,
 'done': 0.03722084367245657,
 'called': 0.03722084367245657,
 'mean': 0.03722084367245657,
 'tree': 0.03722084367245657,
 'mad': 0.03722084367245657,
 'may': 0.034739454094292806,
 'beginning': 0.034739454094292806,
 'hear': 0.034739454094292806,
 'saw': 0.034739454094292806,
 'remember': 0.034739454094292806,
 'trying': 0.034739454094292806,
 'certainly': 0.034739454094292806,
 'size': 0.034739454094292806,
 'game': 0.034739454094292806,
 'left': 0.034739454094292806,
 'anxiously': 0.034739454094292806,
 'set': 0.034739454094292806,
 'everything': 0.034739454094292806,
 'knew': 0.034739454094292806,
 'sea': 0.034739454094292806,
 'suppose': 0.034739454094292806,
 'talk': 0.034739454094292806,
 'us': 0.034739454094292806,
 'silence': 0.034739454094292806,
 'Ye': 0.034739454094292806,
 'mouth': 0.034739454094292806,
 'turn': 0.034739454094292806,
 'Footman': 0.034739454094292806,
 'baby': 0.034739454094292806,
 'creature': 0.034739454094292806,
 'lobster': 0.034739454094292806,
 'give': 0.03225806451612903,
 'book': 0.03225806451612903,
 'suddenly': 0.03225806451612903,
 'close': 0.03225806451612903,
 'happen': 0.03225806451612903,
 'still': 0.03225806451612903,
 'seem': 0.03225806451612903,
 'people': 0.03225806451612903,
 'behind': 0.03225806451612903,
 'really': 0.03225806451612903,
 'grow': 0.03225806451612903,
 'far': 0.03225806451612903,
 'kept': 0.03225806451612903,
 'used': 0.03225806451612903,
 'lesson': 0.03225806451612903,
 'always': 0.03225806451612903,
 'Dodo': 0.03225806451612903,
 'whole': 0.03225806451612903,
 'better': 0.03225806451612903,
 'room': 0.03225806451612903,
 'gone': 0.03225806451612903,
 'beautiful': 0.03225806451612903,
 'remark': 0.03225806451612903,
 'cook': 0.03225806451612903,
 'dance': 0.03225806451612903,
 'Adventures': 0.02977667493796526,
 'CHAPTER': 0.02977667493796526,
 'many': 0.02977667493796526,
 'among': 0.02977667493796526,
 'name': 0.02977667493796526,
 'Dinah': 0.02977667493796526,
 'afraid': 0.02977667493796526,
 'every': 0.02977667493796526,
 'finished': 0.02977667493796526,
 'best': 0.02977667493796526,
 'hardly': 0.02977667493796526,
 'life': 0.02977667493796526,
 'deal': 0.02977667493796526,
 'queer': 0.02977667493796526,
 'try': 0.02977667493796526,
 'tail': 0.02977667493796526,
 'live': 0.02977667493796526,
 'turning': 0.02977667493796526,
 'bird': 0.02977667493796526,
 'serpent': 0.02977667493796526,
 'Pigeon': 0.02977667493796526,
 'Majesty': 0.02977667493796526,
 'sister': 0.02729528535980149,
 'conversation': 0.02729528535980149,
 'mind': 0.02729528535980149,
 'whether': 0.02729528535980149,
 'hurried': 0.02729528535980149,
 'though': 0.02729528535980149,
 'glad': 0.02729528535980149,
 'ask': 0.02729528535980149,
 'matter': 0.02729528535980149,
 'hurry': 0.02729528535980149,
 'read': 0.02729528535980149,
 'waited': 0.02729528535980149,
 'tears': 0.02729528535980149,
 'child': 0.02729528535980149,
 'growing': 0.02729528535980149,
 'pool': 0.02729528535980149,
 'want': 0.02729528535980149,
 'gloves': 0.02729528535980149,
 'thinking': 0.02729528535980149,
 'nearly': 0.02729528535980149,
 'trial': 0.02729528535980149,
 'slate': 0.02729528535980149,
 'keep': 0.02729528535980149,
 'ear': 0.02729528535980149,
 'soldier': 0.02729528535980149,
 'sitting': 0.02481389578163772,
 'either': 0.02481389578163772,
 'answer': 0.02481389578163772,
 'sight': 0.02481389578163772,
 'walked': 0.02481389578163772,
 'glass': 0.02481389578163772,
 'small': 0.02481389578163772,
 'opened': 0.02481389578163772,
 'bottle': 0.02481389578163772,
 'children': 0.02481389578163772,
 'hold': 0.02481389578163772,
 'box': 0.02481389578163772,
 'foot': 0.02481389578163772,
 'fan': 0.02481389578163772,
 'mine': 0.02481389578163772,
 'offended': 0.02481389578163772,
 'party': 0.02481389578163772,
 'explain': 0.02481389578163772,
 'rest': 0.02481389578163772,
 'reason': 0.02481389578163772,
 'place': 0.02481389578163772,
 'repeated': 0.02481389578163772,
 'remarked': 0.02481389578163772,
 'hedgehog': 0.02481389578163772,
 'Heart': 0.02481389578163772,
 'witness': 0.02481389578163772,
 'coming': 0.022332506203473945,
 'top': 0.022332506203473945,
 'hall': 0.022332506203473945,
 'key': 0.022332506203473945,
 'rate': 0.022332506203473945,
 'waiting': 0.022332506203473945,
 'feeling': 0.022332506203473945,
 'croquet': 0.022332506203473945,
 'work': 0.022332506203473945,
 'help': 0.022332506203473945,
 'different': 0.022332506203473945,
 'sit': 0.022332506203473945,
 'continued': 0.022332506203473945,
 'believe': 0.022332506203473945,
 'piece': 0.022332506203473945,
 'call': 0.022332506203473945,
 'angrily': 0.022332506203473945,
 'shook': 0.022332506203473945,
 'least': 0.022332506203473945,
 'together': 0.022332506203473945,
 'shouted': 0.022332506203473945,
 'timidly': 0.022332506203473945,
 'puzzled': 0.022332506203473945,
 'butter': 0.022332506203473945,
 'interrupted': 0.022332506203473945,
 'Knave': 0.022332506203473945,
 'moral': 0.022332506203473945,
 'join': 0.022332506203473945,
 'Wonderland': 0.019851116625310174,
 'feel': 0.019851116625310174,
 'making': 0.019851116625310174,
 'watch': 0.019851116625310174,
 'slowly': 0.019851116625310174,
 'noticed': 0.019851116625310174,
 'four': 0.019851116625310174,
 'opportunity': 0.019851116625310174,
 'distance': 0.019851116625310174,
 "it'll": 0.019851116625310174,
 'sound': 0.019851116625310174,
 'dry': 0.019851116625310174,
 'bright': 0.019851116625310174,
 'fact': 0.019851116625310174,
 'tart': 0.019851116625310174,
 'followed': 0.019851116625310174,
 'lying': 0.019851116625310174,
 'ready': 0.019851116625310174,
 'hard': 0.019851116625310174,
 'changed': 0.019851116625310174,
 'Five': 0.019851116625310174,
 'play': 0.019851116625310174,
 'William': 0.019851116625310174,
 'beg': 0.019851116625310174,
 'eagerly': 0.019851116625310174,
 'meaning': 0.019851116625310174,
 'running': 0.019851116625310174,
 'everybody': 0.019851116625310174,
 'exactly': 0.019851116625310174,
 'story': 0.019851116625310174,
 'nobody': 0.019851116625310174,
 'direction': 0.019851116625310174,
 'window': 0.019851116625310174,
 'appeared': 0.019851116625310174,
 'wood': 0.019851116625310174,
 'mushroom': 0.019851116625310174,
 'pepper': 0.019851116625310174,
 'fish': 0.019851116625310174,
 'ground': 0.019851116625310174,
 'verse': 0.019851116625310174,
 'asleep': 0.019851116625310174,
 'shoulder': 0.019851116625310174,
 'twinkle': 0.019851116625310174,
 'gardeners': 0.019851116625310174,
 'rule': 0.019851116625310174,
 'whiting': 0.019851116625310174,
 'almost': 0.017369727047146403,
 'English': 0.017369727047146403,
 'tired': 0.017369727047146403,
 'hot': 0.017369727047146403,
 'pocket': 0.017369727047146403,
 'world': 0.017369727047146403,
 'deep': 0.017369727047146403,
 'somebody': 0.017369727047146403,
 'fall': 0.017369727047146403,
 'listen': 0.017369727047146403,
 'fancy': 0.017369727047146403,
 'manage': 0.017369727047146403,
 'girl': 0.017369727047146403,
 'bat': 0.017369727047146403,
 'begun': 0.017369727047146403,
 'dream': 0.017369727047146403,
 'middle': 0.017369727047146403,
 'wondering': 0.017369727047146403,
 'golden': 0.017369727047146403,
 'open': 0.017369727047146403,
 'larger': 0.017369727047146403,
 'happened': 0.017369727047146403,
 'neck': 0.017369727047146403,
 'drink': 0.017369727047146403,
 'generally': 0.017369727047146403,
 'surprised': 0.017369727047146403,
 'shoes': 0.017369727047146403,
 'kind': 0.017369727047146403,
 'nonsense': 0.017369727047146403,
 'hair': 0.017369727047146403,
 'goes': 0.017369727047146403,
 'repeat': 0.017369727047146403,
 'grin': 0.017369727047146403,
 'learn': 0.017369727047146403,
 'frightened': 0.017369727047146403,
 'chin': 0.017369727047146403,
 'history': 0.017369727047146403,
 'subject': 0.017369727047146403,
 'fetch': 0.017369727047146403,
 'Lory': 0.017369727047146403,
 'important': 0.017369727047146403,
 'others': 0.017369727047146403,
 'stood': 0.017369727047146403,
 'chimney': 0.017369727047146403,
 'grown': 0.017369727047146403,
 'business': 0.017369727047146403,
 'puppy': 0.017369727047146403,
 'paw': 0.017369727047146403,
 'nose': 0.017369727047146403,
 'draw': 0.017369727047146403,
 'silent': 0.017369727047146403,
 'Cheshire': 0.017369727047146403,
 'pleased': 0.017369727047146403,
 'song': 0.017369727047146403,
 'bread': 0.017369727047146403,
 'treacle': 0.017369727047146403,
 'rose': 0.017369727047146403,
 'Soo': 0.017369727047146403,
 'oop': 0.017369727047146403,
 'evidence': 0.017369727047146403,
 'Gutenberg': 0.01488833746898263,
 'stupid': 0.01488833746898263,
 'trouble': 0.01488833746898263,
 'late': 0.01488833746898263,
 'fell': 0.01488833746898263,
 'nice': 0.01488833746898263,
 'written': 0.01488833746898263,
 'jumped': 0.01488833746898263,
 'roof': 0.01488833746898263,
 'inches': 0.01488833746898263,
 'along': 0.01488833746898263,
 'marked': 0.01488833746898263,
 'forgotten': 0.01488833746898263,
 'ten': 0.01488833746898263,
 'cake': 0.01488833746898263,
 'care': 0.01488833746898263,
 'pair': 0.01488833746898263,
 'stop': 0.01488833746898263,
 'sir': 0.01488833746898263,
 'Seven': 0.01488833746898263,
 'stay': 0.01488833746898263,
 'water': 0.01488833746898263,
 'understand': 0.01488833746898263,
 'sentence': 0.01488833746898263,
 'pardon': 0.01488833746898263,
 'animal': 0.01488833746898263,
 'trembling': 0.01488833746898263,
 'dog': 0.01488833746898263,
 'race': 0.01488833746898263,
 'politely': 0.01488833746898263,
 'melancholy': 0.01488833746898263,
 'liked': 0.01488833746898263,
 'hour': 0.01488833746898263,
 'chorus': 0.01488833746898263,
 'prize': 0.01488833746898263,
 'executed': 0.01488833746898263,
 'broken': 0.01488833746898263,
 'full': 0.01488833746898263,
 'write': 0.01488833746898263,
 'shriek': 0.01488833746898263,
 'loud': 0.01488833746898263,
 'sharp': 0.01488833746898263,
 'Lizard': 0.01488833746898263,
 'guinea': 0.01488833746898263,
 'FATHER': 0.01488833746898263,
 'stand': 0.01488833746898263,
 'youth': 0.01488833746898263,
 'sleep': 0.01488833746898263,
 'egg': 0.01488833746898263,
 'sneezing': 0.01488833746898263,
 'told': 0.01488833746898263,
 'wow': 0.01488833746898263,
 'dreadfully': 0.01488833746898263,
 'writing': 0.01488833746898263,
 'sing': 0.01488833746898263,
 'exclaimed': 0.01488833746898263,
 'procession': 0.01488833746898263,
 'executioner': 0.01488833746898263,
 'school': 0.01488833746898263,
 'eBook': 0.01240694789081886,
 'hole': 0.01240694789081886,
 'twice': 0.01240694789081886,
 'sleepy': 0.01240694789081886,
 'across': 0.01240694789081886,
 'curiosity': 0.01240694789081886,
 'passed': 0.01240694789081886,
 'home': 0.01240694789081886,
 'likely': 0.01240694789081886,
 'aloud': 0.01240694789081886,
 'walk': 0.01240694789081886,
 'new': 0.01240694789081886,
 'asking': 0.01240694789081886,
 'night': 0.01240694789081886,
 'sometimes': 0.01240694789081886,
 'walking': 0.01240694789081886,
 'corner': 0.01240694789081886,
 'sadly': 0.01240694789081886,
 'shut': 0.01240694789081886,
 'simple': 0.01240694789081886,
 'cut': 0.01240694789081886,
 'finger': 0.01240694789081886,
 'nervous': 0.01240694789081886,
 'altogether': 0.01240694789081886,
 'remembered': 0.01240694789081886,
 'person': 0.01240694789081886,
 'nine': 0.01240694789081886,
 'kid': 0.01240694789081886,
 'dropped': 0.01240694789081886,
 'usual': 0.01240694789081886,
 'morning': 0.01240694789081886,
 'Ah': 0.01240694789081886,
 'wrong': 0.01240694789081886,
 'sounded': 0.01240694789081886,
 'strange': 0.01240694789081886,
 'sudden': 0.01240694789081886,
 'case': 0.01240694789081886,
 'number': 0.01240694789081886,
 'swam': 0.01240694789081886,
 'nearer': 0.01240694789081886,
 'speaking': 0.01240694789081886,
 'shrill': 0.01240694789081886,
 'angry': 0.01240694789081886,
 'crowded': 0.01240694789081886,
 'tale': 0.01240694789081886,
 'argument': 0.01240694789081886,
 'notice': 0.01240694789081886,
 'dare': 0.01240694789081886,
 'confusion': 0.01240694789081886,
 'reply': 0.01240694789081886,
 'finish': 0.01240694789081886,
 'impatiently': 0.01240694789081886,
 'sighed': 0.01240694789081886,
 'temper': 0.01240694789081886,
 'young': 0.01240694789081886,
 'moved': 0.01240694789081886,
 'swim': 0.01240694789081886,
 'plate': 0.01240694789081886,
 'interesting': 0.01240694789081886,
 'become': 0.01240694789081886,
 'taking': 0.01240694789081886,
 'drew': 0.01240694789081886,
 'fellow': 0.01240694789081886,
 'sky': 0.01240694789081886,
 'instantly': 0.01240694789081886,
 'surprise': 0.01240694789081886,
 'stick': 0.01240694789081886,
 'height': 0.01240694789081886,
 'quietly': 0.01240694789081886,
 'hookah': 0.01240694789081886,
 'present': 0.01240694789081886,
 'man': 0.01240694789081886,
 'often': 0.01240694789081886,
 'follow': 0.01240694789081886,
 'sob': 0.01240694789081886,
 'meant': 0.01240694789081886,
 'waving': 0.01240694789081886,
 'pack': 0.01240694789081886,
 'knee': 0.01240694789081886,
 'whispered': 0.01240694789081886,
 'execution': 0.01240694789081886,
 'flamingo': 0.01240694789081886,
 'friend': 0.01240694789081886,
 'Tis': 0.01240694789081886,
 'picture': 0.01240694789081886,
 'evening': 0.01240694789081886,
 'juror': 0.01240694789081886,
 'teacup': 0.01240694789081886,
 'officer': 0.01240694789081886,
 'unimportant': 0.01240694789081886,
 'mile': 0.01240694789081886,
 'Lewis': 0.009925558312655087,
 'Carroll': 0.009925558312655087,
 'Project': 0.009925558312655087,
 'bank': 0.009925558312655087,
 'worth': 0.009925558312655087,
 'natural': 0.009925558312655087,
 'fear': 0.009925558312655087,
 'managed': 0.009925558312655087,
 'true': 0.009925558312655087,
 'fallen': 0.009925558312655087,
 'earth': 0.009925558312655087,
 'several': 0.009925558312655087,
 'Miss': 0.009925558312655087,
 'mice': 0.009925558312655087,
 'catch': 0.009925558312655087,
 'passage': 0.009925558312655087,
 'except': 0.009925558312655087,
 'tiny': 0.009925558312655087,
 'alas': 0.009925558312655087,
 'second': 0.009925558312655087,
 'led': 0.009925558312655087,
 'telescope': 0.009925558312655087,
 'paper': 0.009925558312655087,
 'taught': 0.009925558312655087,
 'deeply': 0.009925558312655087,
 'ventured': 0.009925558312655087,
 'reach': 0.009925558312655087,
 'sharply': 0.009925558312655087,
 'severely': 0.009925558312655087,
 'fond': 0.009925558312655087,
 'boots': 0.009925558312655087,
 'savage': 0.009925558312655087,
 'violently': 0.009925558312655087,
 'age': 0.009925558312655087,
 'Mabel': 0.009925558312655087,
 'besides': 0.009925558312655087,
 'puzzling': 0.009925558312655087,
 'twelve': 0.009925558312655087,
 'capital': 0.009925558312655087,
 'alone': 0.009925558312655087,
 'shrinking': 0.009925558312655087,
 'escape': 0.009925558312655087,
 'digging': 0.009925558312655087,
 'French': 0.009925558312655087,
 'fire': 0.009925558312655087,
 'pale': 0.009925558312655087,
 'shore': 0.009925558312655087,
 'Duck': 0.009925558312655087,
 'uncomfortable': 0.009925558312655087,
 'wanted': 0.009925558312655087,
 'frowning': 0.009925558312655087,
 'solemnly': 0.009925558312655087,
 'pointing': 0.009925558312655087,
 'confused': 0.009925558312655087,
 'short': 0.009925558312655087,
 'bowed': 0.009925558312655087,
 'noise': 0.009925558312655087,
 'whisper': 0.009925558312655087,
 'judge': 0.009925558312655087,
 'breath': 0.009925558312655087,
 'tongue': 0.009925558312655087,
 'particular': 0.009925558312655087,
 'vanished': 0.009925558312655087,
 'Mary': 0.009925558312655087,
 'Ann': 0.009925558312655087,
 'run': 0.009925558312655087,
 'elbow': 0.009925558312655087,
 'chance': 0.009925558312655087,
 'answered': 0.009925558312655087,
 'outside': 0.009925558312655087,
 'yer': 0.009925558312655087,
 'honour': 0.009925558312655087,
 'hearing': 0.009925558312655087,
 'master': 0.009925558312655087,
 'Thank': 0.009925558312655087,
 'dead': 0.009925558312655087,
 'doubt': 0.009925558312655087,
 'lay': 0.009925558312655087,
 'crowd': 0.009925558312655087,
 'held': 0.009925558312655087,
 'plan': 0.009925558312655087,
 'difficulty': 0.009925558312655087,
 'grass': 0.009925558312655087,
 'perfectly': 0.009925558312655087,
 'none': 0.009925558312655087,
 'stuff': 0.009925558312655087,
 'decidedly': 0.009925558312655087,
 'thoughtfully': 0.009925558312655087,
 'green': 0.009925558312655087,
 'screamed': 0.009925558312655087,
 'indignantly': 0.009925558312655087,
 'taken': 0.009925558312655087,
 'letter': 0.009925558312655087,
 'dish': 0.009925558312655087,
 'kitchen': 0.009925558312655087,
 'sneeze': 0.009925558312655087,
 'jumping': 0.009925558312655087,
 'carried': 0.009925558312655087,
 'growl': 0.009925558312655087,
 'busily': 0.009925558312655087,
 'beat': 0.009925558312655087,
 'grunted': 0.009925558312655087,
 'less': 0.009925558312655087,
 'fast': 0.009925558312655087,
 'crumbs': 0.009925558312655087,
 'twinkling': 0.009925558312655087,
 'sigh': 0.009925558312655087,
 'bottom': 0.009925558312655087,
 'flower': 0.009925558312655087,
 'Consider': 0.009925558312655087,
 'arches': 0.009925558312655087,
 'players': 0.009925558312655087,
 'week': 0.009925558312655087,
 'Quadrille': 0.009925558312655087,
 'figure': 0.009925558312655087,
 'porpoise': 0.009925558312655087,
 'Beau': 0.009925558312655087,
 'ootiful': 0.009925558312655087,
 'verdict': 0.009925558312655087,
 'suppressed': 0.009925558312655087,
 'jurymen': 0.009925558312655087,
 'fit': 0.009925558312655087,
 'Date': 0.007444168734491315,
 'edition': 0.007444168734491315,
 'peeped': 0.007444168734491315,
 'reading': 0.007444168734491315,
 'considering': 0.007444168734491315,
 'hedge': 0.007444168734491315,
 'dark': 0.007444168734491315,
 'filled': 0.007444168734491315,
 'past': 0.007444168734491315,
 'stairs': 0.007444168734491315,
 'somewhere': 0.007444168734491315,
 'knowledge': 0.007444168734491315,
 'grand': 0.007444168734491315,
 'funny': 0.007444168734491315,
 'listening': 0.007444168734491315,
 'hope': 0.007444168734491315,
 'hurt': 0.007444168734491315,
 'lost': 0.007444168734491315,
 'whiskers': 0.007444168734491315,
 'longer': 0.007444168734491315,
 'hanging': 0.007444168734491315,
 'belong': 0.007444168734491315,
 'lock': 0.007444168734491315,
 'delight': 0.007444168734491315,
 'impossible': 0.007444168734491315,
 'hoping': 0.007444168734491315,
 'poison': 0.007444168734491315,
 'red': 0.007444168734491315,
 'knife': 0.007444168734491315,
 'certain': 0.007444168734491315,
 'later': 0.007444168734491315,
 'taste': 0.007444168734491315,
 'finding': 0.007444168734491315,
 'apple': 0.007444168734491315,
 'candle': 0.007444168734491315,
 'decided': 0.007444168734491315,
 'possibly': 0.007444168734491315,
 'legs': 0.007444168734491315,
 'bring': 0.007444168734491315,
 'smaller': 0.007444168734491315,
 'holding': 0.007444168734491315,
 'remained': 0.007444168734491315,
 'expecting': 0.007444168734491315,
 'dull': 0.007444168734491315,
 'opening': 0.007444168734491315,
 'love': 0.007444168734491315,
 'cry': 0.007444168734491315,
 'pattering': 0.007444168734491315,
 'muttering': 0.007444168734491315,
 'timid': 0.007444168734491315,
 'yesterday': 0.007444168734491315,
 'twenty': 0.007444168734491315,
 'doth': 0.007444168734491315,
 'crossed': 0.007444168734491315,
 'hoarse': 0.007444168734491315,
 'spread': 0.007444168734491315,
 'gently': 0.007444168734491315,
 'putting': 0.007444168734491315,
 'guess': 0.007444168734491315,
 'cause': 0.007444168734491315,
 'worse': 0.007444168734491315,
 'slipped': 0.007444168734491315,
 'general': 0.007444168734491315,
 'notion': 0.007444168734491315,
 'show': 0.007444168734491315,
 'washing': 0.007444168734491315,
 'nurse': 0.007444168734491315,
 'throw': 0.007444168734491315,
 'passion': 0.007444168734491315,
 'Eaglet': 0.007444168734491315,
 'Caucus': 0.007444168734491315,
 'fur': 0.007444168734491315,
 'cross': 0.007444168734491315,
 'sulky': 0.007444168734491315,
 'allow': 0.007444168734491315,
 'frog': 0.007444168734491315,
 'crown': 0.007444168734491315,
 'move': 0.007444168734491315,
 'pressed': 0.007444168734491315,
 'handed': 0.007444168734491315,
 'gravely': 0.007444168734491315,
 'thimble': 0.007444168734491315,
 'speech': 0.007444168734491315,
 'cheered': 0.007444168734491315,
 'grave': 0.007444168734491315,
 'simply': 0.007444168734491315,
 'solemn': 0.007444168734491315,
 'choked': 0.007444168734491315,
 'sad': 0.007444168734491315,
 'sighing': 0.007444168734491315,
 'Fury': 0.007444168734491315,
 'met': 0.007444168734491315,
 'attending': 0.007444168734491315,
 'pleaded': 0.007444168734491315,
 'easily': 0.007444168734491315,
 'joined': 0.007444168734491315,
 'pity': 0.007444168734491315,
 'Crab': 0.007444168734491315,
 'venture': 0.007444168734491315,
 'carefully': 0.007444168734491315,
 'remarking': 0.007444168734491315,
 'suit': 0.007444168734491315,
 'bed': 0.007444168734491315,
 'mentioned': 0.007444168734491315,
 'guessed': 0.007444168734491315,
 'hunting': 0.007444168734491315,
 'mistake': 0.007444168734491315,
 'knocking': 0.007444168734491315,
 'real': 0.007444168734491315,
 'floor': 0.007444168734491315,
 'effect': 0.007444168734491315,
 'whatever': 0.007444168734491315,
 'ordered': 0.007444168734491315,
 'stopped': 0.007444168734491315,
 'forgetting': 0.007444168734491315,
 'crash': 0.007444168734491315,
 'Pat': 0.007444168734491315,
 'em': 0.007444168734491315,
 'kick': 0.007444168734491315,
 'sense': 0.007444168734491315,
 'moving': 0.007444168734491315,
 'hungry': 0.007444168734491315,
 'picked': 0.007444168734491315,
 'edge': 0.007444168734491315,
 'immediately': 0.007444168734491315,
 'folded': 0.007444168734491315,
 'confusing': 0.007444168734491315,
 'brought': 0.007444168734491315,
 'Pray': 0.007444168734491315,
 'jaw': 0.007444168734491315,
 'eel': 0.007444168734491315,
 'blow': 0.007444168734491315,
 'free': 0.007444168734491315,
 'shaking': 0.007444168734491315,
 'succeeded': 0.007444168734491315,
 'tasted': 0.007444168734491315,
 'settled': 0.007444168734491315,
 'nibbling': 0.007444168734491315,
 'bringing': 0.007444168734491315,
 'livery': 0.007444168734491315,
 'considered': 0.007444168734491315,
 'loudly': 0.007444168734491315,
 'order': 0.007444168734491315,
 'staring': 0.007444168734491315,
 'howling': 0.007444168734491315,
 'instance': 0.007444168734491315,
 'repeating': 0.007444168734491315,
 'nursing': 0.007444168734491315,
 'courage': 0.007444168734491315,
 'grinned': 0.007444168734491315,
 'faster': 0.007444168734491315,
 'advantage': 0.007444168734491315,
 'line': 0.007444168734491315,
 'boy': 0.007444168734491315,
 'tossing': 0.007444168734491315,
 'caught': 0.007444168734491315,
 'shaped': 0.007444168734491315,
 'proper': 0.007444168734491315,
 'sobbing': 0.007444168734491315,
 'explanation': 0.007444168734491315,
 'instead': 0.007444168734491315,
 'civil': 0.007444168734491315,
 'fun': 0.007444168734491315,
 'breathe': 0.007444168734491315,
 "o'clock": 0.007444168734491315,
 'year': 0.007444168734491315,
 'riddle': 0.007444168734491315,
 'cautiously': 0.007444168734491315,
 'music': 0.007444168734491315,
 'fly': 0.007444168734491315,
 'lady': 0.007444168734491315,
 'lived': 0.007444168734491315,
 'upset': 0.007444168734491315,
 'manner': 0.007444168734491315,
 'muchness': 0.007444168734491315,
 'beheaded': 0.007444168734491315,
 'watching': 0.007444168734491315,
 'checked': 0.007444168734491315,
 'eager': 0.007444168734491315,
 'guests': 0.007444168734491315,
 'cards': 0.007444168734491315,
 "needn't": 0.007444168734491315,
 'beast': 0.007444168734491315,
 'unfortunate': 0.007444168734491315,
 'Hush': 0.007444168734491315,
 'tucked': 0.007444168734491315,
 'alive': 0.007444168734491315,
 'anxious': 0.007444168734491315,
 'mustard': 0.007444168734491315,
 'sorrow': 0.007444168734491315,
 'Tortoise': 0.007444168734491315,
 'Drawling': 0.007444168734491315,
 'advance': 0.007444168734491315,
 'toes': 0.007444168734491315,
 'mark': 0.007444168734491315,
 'snail': 0.007444168734491315,
 'obliged': 0.007444168734491315,
 'part': 0.007444168734491315,
 'around': 0.007444168734491315,
 'Owl': 0.007444168734491315,
 'Panther': 0.007444168734491315,
 'pie': 0.007444168734491315,
 'trumpet': 0.007444168734491315,
 'spectacles': 0.007444168734491315,
 'pencil': 0.007444168734491315,
 'wrote': 0.007444168734491315,
 'list': 0.007444168734491315,
 'prove': 0.007444168734491315,
 'anywhere': 0.004962779156327543,
 'cost': 0.004962779156327543,
 'terms': 0.004962779156327543,
 'pleasure': 0.004962779156327543,
 'chain': 0.004962779156327543,
 'picking': 0.004962779156327543,
 'remarkable': 0.004962779156327543,
 'afterwards': 0.004962779156327543,
 'occurred': 0.004962779156327543,
 'WAISTCOAT': 0.004962779156327543,
 'started': 0.004962779156327543,
 'straight': 0.004962779156327543,
 'dipped': 0.004962779156327543,
 'falling': 0.004962779156327543,
 'plenty': 0.004962779156327543,
 'cupboards': 0.004962779156327543,
 'shelves': 0.004962779156327543,
 'jar': 0.004962779156327543,
 'tumbling': 0.004962779156327543,
 'thousand': 0.004962779156327543,
 'learnt': 0.004962779156327543,
 'showing': 0.004962779156327543,
 'Latitude': 0.004962779156327543,
 'Longitude': 0.004962779156327543,
 'Presently': 0.004962779156327543,
 'downward': 0.004962779156327543,
 "Dinah'll": 0.004962779156327543,
 'milk': 0.004962779156327543,
 'earnestly': 0.004962779156327543,
 'thump': 0.004962779156327543,
 'wind': 0.004962779156327543,
 'row': 0.004962779156327543,
 'legged': 0.004962779156327543,
 'rat': 0.004962779156327543,
 'longed': 0.004962779156327543,
 'cool': 0.004962779156327543,
 'fountains': 0.004962779156327543,
 'shutting': 0.004962779156327543,
 'label': 0.004962779156327543,
 "ME'": 0.004962779156327543,
 'beautifully': 0.004962779156327543,
 'wise': 0.004962779156327543,
 'wild': 0.004962779156327543,
 'unpleasant': 0.004962779156327543,
 'burn': 0.004962779156327543,
 'usually': 0.004962779156327543,
 'sooner': 0.004962779156327543,
 'mixed': 0.004962779156327543,
 'brightened': 0.004962779156327543,
 'lovely': 0.004962779156327543,
 'crying': 0.004962779156327543,
 'advice': 0.004962779156327543,
 'playing': 0.004962779156327543,
 'Curiouser': 0.004962779156327543,
 'forgot': 0.004962779156327543,
 'bye': 0.004962779156327543,
 '_I_': 0.004962779156327543,
 'sending': 0.004962779156327543,
 'struck': 0.004962779156327543,
 'ashamed': 0.004962779156327543,
 'trotting': 0.004962779156327543,
 'ringlets': 0.004962779156327543,
 'six': 0.004962779156327543,
 'Paris': 0.004962779156327543,
 'Rome': 0.004962779156327543,
 'lap': 0.004962779156327543,
 'neatly': 0.004962779156327543,
 'claws': 0.004962779156327543,
 'smiling': 0.004962779156327543,
 'rapidly': 0.004962779156327543,
 'narrow': 0.004962779156327543,
 'declare': 0.004962779156327543,
 'bad': 0.004962779156327543,
 'salt': 0.004962779156327543,
 'railway': 0.004962779156327543,
 'conclusion': 0.004962779156327543,
 'wherever': 0.004962779156327543,
 'sand': 0.004962779156327543,
 'splashing': 0.004962779156327543,
 'swimming': 0.004962779156327543,
 'wink': 0.004962779156327543,
 'Conqueror': 0.004962779156327543,
 'clear': 0.004962779156327543,
 'ago': 0.004962779156327543,
 'ma': 0.004962779156327543,
 'fright': 0.004962779156327543,
 'quiet': 0.004962779156327543,
 'purring': 0.004962779156327543,
 'nicely': 0.004962779156327543,
 'catching': 0.004962779156327543,
 'brown': 0.004962779156327543,
 'dinner': 0.004962779156327543,
 'useful': 0.004962779156327543,
 'sorrowful': 0.004962779156327543,
 'hate': 0.004962779156327543,
 'assembled': 0.004962779156327543,
 'wet': 0.004962779156327543,
 'older': 0.004962779156327543,
 'knowing': 0.004962779156327543,
 'authority': 0.004962779156327543,
 'ring': 0.004962779156327543,
 'whose': 0.004962779156327543,
 'Edwin': 0.004962779156327543,
 'Morcar': 0.004962779156327543,
 'earls': 0.004962779156327543,
 'Mercia': 0.004962779156327543,
 'Northumbria': 0.004962779156327543,
 'Ugh': 0.004962779156327543,
 'proceed': 0.004962779156327543,
 'archbishop': 0.004962779156327543,
 ...}
In [148]:
# 단어 빈도수 분석결과, 그림으로 표현
plt.figure(figsize=(12,12))
plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
plt.show()
In [141]:
# text

예제) 스타워즈 A New Hope

In [156]:
# 텍스트 데이터 로드
text = open('DataScience_Ing/data/09. a_new_hope.txt').read()
In [157]:
# 단어 대치
text = text.replace('HAN', 'Han')
text = text.replace("LUKE'S", 'Luke')
In [158]:
# 이미지 데이터 로드
mask = np.array(Image.open('DataScience_Ing/data/09. stormtrooper_mask.png'))
In [159]:
# 불용어 제거
stopwords = set(STOPWORDS)
stopwords.add('int')
stopwords.add('ext')
In [160]:
wc = WordCloud(max_words=1000, mask=mask, stopwords=stopwords, collocations=False,
              margin=10, random_state=1).generate(text)

default_colors = wc.to_array()
In [161]:
# 글자색 바꾸는 함수 생성
import random
def grey_color_func(word, font_size, position, orientation, random_state=None, **kwards):
    return 'hsl(0, 0%%, %d%%)' % random.randint(60,100)

# kwargs 정해지지 않은 수의 키워드 파라미터를 받음
In [162]:
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호 의안

In [116]:
import nltk
In [117]:
from konlpy.corpus import kobill
In [126]:
files_ko = kobill.fileids()
doc_ko = kobill.open('1809890.txt').read()
# konlpy 사이트에서 가져오는 말뭉치
In [127]:
doc_ko
Out[127]:
'지방공무원법 일부개정법률안\n\n(정의화의원 대표발의 )\n\n 의 안\n 번 호\n\n9890\n\n발의연월일 : 2010.  11.  12.  \n\n발  의  자 : 정의화․이명수․김을동 \n\n이사철․여상규․안규백\n\n황영철․박영아․김정훈\n\n김학송 의원(10인)\n\n제안이유 및 주요내용\n\n  초등학교 저학년의 경우에도 부모의 따뜻한 사랑과 보살핌이 필요\n\n한 나이이나, 현재 공무원이 자녀를 양육하기 위하여 육아휴직을 할 \n\n수 있는 자녀의 나이는 만 6세 이하로 되어 있어 초등학교 저학년인 \n\n자녀를 돌보기 위해서는 해당 부모님은 일자리를 그만 두어야 하고 \n\n이는 곧 출산의욕을 저하시키는 문제로 이어질 수 있을 것임.\n\n  따라서 육아휴직이 가능한 자녀의 연령을 만 8세 이하로 개정하려\n\n는 것임(안 제63조제2항제4호).\n\n- 1 -\n\n\x0c법률  제        호\n\n지방공무원법 일부개정법률안\n\n지방공무원법 일부를 다음과 같이 개정한다.\n\n제63조제2항제4호 중 “만 6세 이하의 초등학교 취학 전 자녀를”을 “만 \n\n8세 이하(취학 중인 경우에는 초등학교 2학년 이하를 말한다)의 자녀를”\n\n로 한다.\n\n부      칙\n\n이 법은 공포한 날부터 시행한다.\n\n- 3 -\n\n\x0c신 ·구조문대비표\n\n현      행\n\n개   정   안\n\n제63조(휴직) ① (생  략)\n\n제63조(휴직) ① (현행과 같음)\n\n  ② 공무원이 다음 각 호의 어\n\n  ② -------------------------\n\n느 하나에 해당하는 사유로 휴\n\n----------------------------\n\n직을 원하면 임용권자는 휴직\n\n----------------------------\n\n을 명할 수 있다. 다만, 제4호\n\n-------------.---------------\n\n의 경우에는 대통령령으로 정\n\n----------------------------\n\n하는 특별한 사정이 없으면 휴\n\n----------------------------\n\n직을 명하여야 한다.\n\n--------------.\n\n  1. ∼ 3. (생  략)\n\n  1. ∼ 3. (현행과 같음)\n\n  4. 만 6세 이하의 초등학교 취\n\n  4. 만 8세 이하(취학 중인 경우\n\n학 전 자녀를 양육하기 위하\n\n에는 초등학교 2학년 이하를 \n\n여 필요하거나 여자공무원이 \n\n말한다)의 자녀를 ----------\n\n임신 또는 출산하게 되었을 \n\n---------------------------\n\n때\n\n---------------------------\n\n  5.⋅6. (생  략)\n\n  ③⋅④ (생  략)\n\n--------\n\n  5.⋅6. (현행과 같음)\n\n  ③⋅④ (현행과 같음)\n\n- 5 -\n\n\x0c지방공무원법 일부개정법률안 등 비용추계서 미첨부사유서\n1.  재정수반요인\n\n개정안에서 「국가공무원법」  제71조제2항제4호 중 국가공무원의 육아\n\n휴직 가능 자녀의 연령을 만6세 이하에서 만8세 이하로 하고, 「지방공\n\n무원법」 제63조제2항제4호 중 지방공무원의 육아휴직 가능 자녀의 연\n\n령을 만6세 이하에서 만8세 이하로 하고, 「교육공무원법」 제44조제1항\n\n제7조 중 교육공무원의 육아휴직 가능 자녀의 연령을 만6세 이하에서 \n\n만8세 이하로 하고, 「남녀고용평등과 일․가정 양립지원에 관한 법률」 \n\n제19조제1항 중 근로자 육아휴직 가능 자녀연령을 만6세 이하에서 만\n\n8세 이하로 조정함에 따라 추가 재정소요가 예상됨.\n\n2.  미첨부  근거  규정\n「의안의 비용추계에 관한 규칙」 제3조제1항 단서 중 제1호(예상되는 비용이 연평균  10억원 미만\n이거나  한시적인  경비로서  총  30억원  미만인  경우)에  해당함.\n\n3.  미첨부  사유\n\n개정안에서 국가․지방․교육공무원 및 근로자가 육아휴직을 신청할 \n\n수 있는 자녀의 연령을 만6세 이하에서 만8세 이하로 상향조정함에 \n\n따라 추가 재정소요가 예상된다. 동 법률 개정안이 2011년에 시행된다\n\n고 가정한 경우, 2010년 현재 자녀의 연령이 7세이고 육아휴직을 신청\n\n- 7 -\n\n\x0c- 8 -\n\n하지 않은 국가․지방․교육공무원 및 근로자가 대상이 된다.\n\n대상연령의 확대됨에 따라 육아휴직신청자의 수가 어느 정도 늘어날 \n\n것으로 예상된다. 이 경우 발생하는 비용은 현행법에 따르면 월50만원\n\n이나 현재 관련법령 개정이 추진되고 있으며, 이에 따라 2011년에는 \n\n육아휴직자가 지급받는 월급여액에 비례하여 육아휴직급여가 지급되\n\n기 때문에 법령개정을 가정하고 추계한다. 이러한 경우 육아휴직급여\n\n액은 육아휴직자가 지급받는 월급여의 40%에 해당한다. 육아휴직자가 \n\n발생한 경우 발생하는 비용은 대체인력 고용인건비와 육아휴직자가 \n\n받는 월급여액의 40%이다. 이와 대비하여 육아휴직자에게 지급하던 \n\n임금은 더 이상 발생하지 않는다. 따라서 실제 발생하는 순비용은 육\n\n아휴직자에게 지급하던 월 급여액과 연령 확대에 따라 발생하는 비용\n\n인 육아휴직자가 받던 월급여액의 40%와 대체인력 고용인건비의 차\n\n액인데 이 값이 0보다 크면 추가 재정소요는 발생하지 않는다고 볼 \n\n수 있다.\n\n추가비용 발생여부를 정확하게 알아보기 위하여 비용에 대한 수리모\n\n델을 만들고 이에 따라 비용발생 여부를 알아보기로 하자. 모델에 사\n\n용되는 변수를 다음과 같이 정의한다.\n\n발생비용 : N×p×X + N×육아휴직급여액 - N×P\n\nN\n\nP\n\n: 육아휴직대상자의 수\n\n: 육아휴직대상자의 월급여액\n\n\x0cp\n\nX\n\n: 육아휴직자가 발생한 경우 대체 고용할 확률\n\n: 대체 고용한 인력에게 지급하는 월급여액\n\n위의 수식에서 육아휴직급여액은 육아휴직자 월급여액의 40%까지 지\n\n급할 예정이므로 육아휴직급여액은 P×40%이다. 육아휴직자가 발생한 \n\n경우 대체 고용할 확률 p는 고용노동부의 육아휴직 관련 자료를 이용\n\n한다. 고용노동부에 따르면 2011년의 경우 육아휴직급여 대상자는 \n\n40,923명이며, 육아휴직에 따른 대체인력 고용 예상인원은 2,836명이\n\n다. 2007년부터 2011년까지의 현황을 정리하면 다음의 [표]와 같다.\n\n[표]  육아휴직급여  수급자의  수  및  대체인력  고용  현황:  2007~2011년\n\n(단위:  명,  % )\n\n2007\n\n2008\n\n2009\n\n2010\n\n2011\n\n평균\n\n육아휴직급여  수급자(A)\n\n21,185\n\n29,145\n\n35,400\n\n41,291\n\n43,899\n\n34,184\n\n대체인력  채용(B)\n\n796\n\n1,658\n\n1,957\n\n2,396\n\n2,836\n\n1,929\n\n비  율(B/A)\n\n3.8\n\n5.7\n\n5.5\n\n5.8\n\n6.5\n\n5.6\n\n자료: 고용노동부  자료를  바탕으로  국회예산정책처  작성\n\n위의 [표]의 자료에 따라 육아휴직자가 발생한 경우 대체 고용할 확률 \n\np의 값은 5.6%라고 가정한다. 그리고 비용이 발생한다고 가정하여 위\n\n의 수식을 다시 작성하면 다음의 수식과 같다.\n\nN×p×X + N×육아휴직급여액 - N×P > 0\n\n(1)\n\n- 9 -\n\n\x0c- 10 -\n\nN×5.6%×X + N×P×40% - N×P > 0\n\n0.056×X > 0.6P\n\nX > 10.7×P\n\n(2)\n\n(3)\n\n(5)\n\n위의 수식에 육아휴직자가 받는 월 급여액을 대입하여 대체고용인력\n\n자에게 지급하는 월 급여액을 추정하여 보자. 육아휴직자가 월 200만\n\n원을 받는다고 가정하면, 대체고용인력자에게 육아휴직자가 받는 월 \n\n급여액의 10.7배에 달하는 월 21,428,571원 이상을 지급해야 추가 비용\n\n이 발생한다. 대체고용인력자에게 육아휴직자보다 더 많은 월급여액을 \n\n주지는 않을 것이고 그리고 10여배 이상 월급을 주지도 않을 것이기 \n\n때문에 추가 비용이 발생한다고 보기 힘들다. 위의 수식에서 대체인력 \n\n고용확률 p를 20%로 가정하더라도(이 경우 X > 3×P) 200만원 받는 \n\n육아휴직자 대체인력에게 월 600만원 이상을 지급해야 추가 비용이 \n\n발생한다.\n\n행정안전부의 통계자료(행정안전부 통계연감)에서는 지방공무원의 육\n\n아휴직 현황자료를 보여주고 있다. 여기서 육아휴직자가 발생한 경우 \n\n대체인력을 주로 임용대기자 또는 일용직을 활용하는 것으로 보인다. \n\n따라서 공무원의 경우에도 [표]에서 보여주는 일반기업체의 대체인력 \n\n고용확률과 차이는 크지 않을 것으로 보인다.\n\n이상의 논의를 바탕으로 육아휴직기간을 만6에서 만8세로 연장하더라\n\n도 법률 개정에 따른 추가 비용은 발생하지 않을 것으로 예상된다.\n\n\x0c4.  작성자\n\n국회예산정책처 법안비용추계1팀\n\n팀      장   정 문 종\n\n예산분석관   김 태 완\n\n(02-788-4649, tanzania@assembly.go.kr)\n\n- 11 -\n\n\x0c'
In [129]:
# 말뭉치 분석
from konlpy.tag import Okt
t = Okt()
In [130]:
# 명사 분석
tokens_ko = t.nouns(doc_ko)
tokens_ko
Out[130]:
['지방공무원법',
 '일부',
 '개정',
 '법률',
 '안',
 '정의화',
 '의원',
 '대표',
 '발의',
 '의',
 '안',
 '번',
 '호',
 '발의',
 '연월일',
 '발',
 '의',
 '자',
 '정의화',
 '이명수',
 '김을동',
 '이사철',
 '여상규',
 '안규백',
 '황영철',
 '박영아',
 '김정훈',
 '김학송',
 '의원',
 '인',
 '제안',
 '이유',
 '및',
 '내용',
 '초등학교',
 '저학년',
 '경우',
 '부모',
 '사랑',
 '필요',
 '나이',
 '현재',
 '공무원',
 '자녀',
 '양육',
 '위',
 '육아휴직',
 '수',
 '자녀',
 '나이',
 '만',
 '세',
 '이하',
 '초등학교',
 '저학년',
 '자녀',
 '위',
 '해당',
 '부모님',
 '일자리',
 '곧',
 '출산',
 '의욕',
 '저하',
 '문제',
 '수',
 '것임',
 '따라서',
 '육아휴직',
 '자녀',
 '연령',
 '만',
 '세',
 '이하',
 '개정',
 '것임',
 '안',
 '제',
 '항제',
 '호',
 '법률',
 '제',
 '호',
 '지방공무원법',
 '일부',
 '개정',
 '법률',
 '안',
 '지방공무원법',
 '일부',
 '다음',
 '개정',
 '제',
 '항제',
 '호',
 '중',
 '만',
 '세',
 '이하',
 '초등학교',
 '취학',
 '전',
 '자녀',
 '만',
 '세',
 '이하',
 '취학',
 '중인',
 '경우',
 '초등학교',
 '학년',
 '이하',
 '말',
 '의',
 '자녀',
 '로',
 '부',
 '칙',
 '이',
 '법',
 '공포',
 '날',
 '시행',
 '신',
 '구조',
 '문대비',
 '표',
 '현',
 '행',
 '개',
 '정',
 '안',
 '제',
 '휴직',
 '생',
 '략',
 '제',
 '휴직',
 '현행',
 '공무원',
 '다음',
 '각',
 '호의',
 '느',
 '하나',
 '해당',
 '사유',
 '직',
 '임용',
 '휴직',
 '명',
 '수',
 '다만',
 '제',
 '호',
 '의',
 '경우',
 '대통령령',
 '정',
 '사정',
 '직',
 '명',
 '생',
 '략',
 '현행',
 '만',
 '세',
 '이하',
 '초등학교',
 '취',
 '만',
 '세',
 '이하',
 '취학',
 '중인',
 '경우',
 '학',
 '전',
 '자녀',
 '양육',
 '위',
 '초등학교',
 '학년',
 '이하',
 '여',
 '여자',
 '공무원',
 '말',
 '의',
 '자녀',
 '임신',
 '출산',
 '때',
 '생',
 '략',
 '생',
 '략',
 '현행',
 '현행',
 '지방공무원법',
 '일부',
 '개정',
 '법률',
 '안',
 '등',
 '비용',
 '추계',
 '첨부',
 '사유',
 '재정',
 '요인',
 '개정안',
 '국가공무원',
 '법',
 '제',
 '항제',
 '호',
 '중',
 '국가공무원',
 '육아',
 '휴직',
 '가능',
 '자녀',
 '연령',
 '만',
 '세',
 '이하',
 '만',
 '세',
 '이하',
 '방공',
 '무',
 '법',
 '제',
 '항제',
 '호',
 '중',
 '지방',
 '공무원',
 '육아휴직',
 '가능',
 '자녀',
 '연',
 '령',
 '만',
 '세',
 '이하',
 '만',
 '세',
 '이하',
 '교육',
 '공무원',
 '법',
 '제',
 '항',
 '제',
 '중',
 '교육',
 '공무원',
 '육아휴직',
 '가능',
 '자녀',
 '연령',
 '만',
 '세',
 '이하',
 '만',
 '세',
 '이하',
 '남녀',
 '고용',
 '평등',
 '일',
 '가정',
 '양립',
 '지원',
 '관',
 '법률',
 '제',
 '항',
 '중',
 '근로자',
 '육아휴직',
 '가능',
 '자녀',
 '연령',
 '만',
 '세',
 '이하',
 '만',
 '세',
 '이하',
 '조정',
 '함',
 '추가',
 '재정',
 '요가',
 '예상',
 '첨부',
 '근거',
 '규정',
 '의안',
 '비용',
 '추계',
 '관',
 '규칙',
 '제',
 '항',
 '단서',
 '중',
 '제',
 '호',
 '예상',
 '비용',
 '평균',
 '미만',
 '거나',
 '한시',
 '경비',
 '로서',
 '총',
 '미만',
 '경우',
 '해당',
 '함',
 '첨부',
 '사유',
 '개정안',
 '국가',
 '지방',
 '교육',
 '공무원',
 '및',
 '근로자',
 '육아휴직',
 '신청',
 '수',
 '자녀',
 '연령',
 '만',
 '세',
 '이하',
 '만',
 '세',
 '이하',
 '상향',
 '조정',
 '함',
 '추가',
 '재정',
 '요가',
 '예상',
 '법률',
 '개정안',
 '시행',
 '고',
 '가정',
 '경우',
 '현재',
 '자녀',
 '연령',
 '세이',
 '육아휴직',
 '신청',
 '국가',
 '지방',
 '교육',
 '공무원',
 '및',
 '근로자',
 '대상',
 '대상',
 '연령',
 '확대',
 '육아휴직',
 '신청',
 '수가',
 '정도',
 '것',
 '예상',
 '이',
 '경우',
 '발생',
 '비용',
 '현행법',
 '월',
 '이나',
 '현재',
 '관련',
 '법령',
 '개정',
 '추진',
 '이',
 '육아휴직',
 '지급',
 '월급',
 '액',
 '비례',
 '육아휴직',
 '여가',
 '지급',
 '기',
 '때문',
 '법령',
 '개정',
 '가정',
 '추계',
 '경우',
 '육아휴직',
 '급여',
 '액',
 '육아휴직',
 '지급',
 '월급',
 '여의',
 '해당',
 '육아휴직',
 '발생',
 '경우',
 '발생',
 '비용',
 '체인',
 '고용',
 '인건비',
 '육아휴직',
 '월급',
 '액',
 '이',
 '대비',
 '육아휴직',
 '지급',
 '임금',
 '더',
 '이상',
 '발생',
 '따라서',
 '실제',
 '발생',
 '비용',
 '육',
 '휴직',
 '지급',
 '월',
 '급여',
 '액',
 '연령',
 '확대',
 '발생',
 '비용',
 '인',
 '육아휴직',
 '월급',
 '액',
 '체인',
 '고용',
 '인건비',
 '차',
 '액',
 '이',
 '값',
 '추가',
 '재정',
 '소요',
 '발생',
 '볼',
 '수',
 '추가',
 '비용',
 '발생',
 '여부',
 '위',
 '비용',
 '대한',
 '리모',
 '델',
 '이',
 '비용',
 '발생',
 '여부',
 '하자',
 '모델',
 '사',
 '용',
 '변수',
 '다음',
 '정의',
 '발생',
 '비용',
 '육아휴직',
 '액',
 '육아휴직',
 '대상자',
 '수',
 '육아휴직',
 '대상자',
 '월급',
 '액',
 '육아휴직',
 '발생',
 '경우',
 '대체',
 '고용',
 '확률',
 '대체',
 '고용',
 '인력',
 '지급',
 '월급',
 '액',
 '위',
 '수식',
 '육아휴직',
 '액',
 '육아휴직',
 '월급',
 '액',
 '예정',
 '므',
 '육아휴직',
 '액',
 '육아휴직',
 '발생',
 '경우',
 '대체',
 '고용',
 '확률',
 '고용노동부',
 '육아휴직',
 '관련',
 '자료',
 '이용',
 '고용노동부',
 '경우',
 '육아휴직',
 '급여',
 '대상자',
 '명',
 '육아휴직',
 '체인',
 '고용',
 '상인',
 '명',
 '현황',
 '정리',
 '다음',
 '표',
 '표',
 '육아휴직',
 '급여',
 '수급',
 '수',
 '및',
 '체인',
 '고용',
 '현황',
 '단위',
 '명',
 '평균',
 '육아휴직',
 '급여',
 '수급',
 '체인',
 '채용',
 '비',
 '율',
 '자료',
 '고용노동부',
 '자료',
 '바탕',
 '국회예산정책처',
 '작성',
 '위',
 '표',
 '의',
 '자료',
 '육아휴직',
 '발생',
 '경우',
 '대체',
 '고용',
 '확률',
 '의',
 '값',
 '가정',
 '비용',
 '발생',
 '가정',
 '위',
 '의',
 '수식',
 '다시',
 '작성',
 '다음',
 '수식',
 '육아휴직',
 '액',
 '위',
 '수식',
 '육아휴직',
 '월',
 '급여',
 '액',
 '대입',
 '대체',
 '고용',
 '인력',
 '자',
 '지급',
 '월',
 '급여',
 '액',
 '추정',
 '육아휴직',
 '월',
 '원',
 '가정',
 '대체',
 '고용',
 '인력',
 '육아휴직',
 '월',
 '급여',
 '액',
 '배',
 '달',
 '월',
 '이상',
 '지급',
 '추가',
 '비용',
 '이',
 '발생',
 '대체',
 '고용',
 '인력',
 '육아휴직',
 '더',
 '월급',
 '액',
 '주지',
 '것',
 '배',
 '이상',
 '월급',
 '주지',
 '것',
 '이기',
 '때문',
 '추가',
 '비용',
 '발생',
 '보기',
 '위',
 '수식',
 '체인',
 '고용',
 '확률',
 '를',
 '로',
 '가정',
 '이',
 '경우',
 '육아휴직',
 '체인',
 '월',
 '이상',
 '지급',
 '추가',
 '비용',
 '발생',
 '행정안전부',
 '통계',
 '자료',
 '행정안전부',
 '통계',
 '연감',
 '지방',
 '공무원',
 '육',
 '휴직',
 '현황',
 '자료',
 '여기',
 '육아휴직',
 '발생',
 '경우',
 '체인',
 '주로',
 '임용',
 '기자',
 '일용직',
 '활용',
 '것',
 '따라서',
 '공무원',
 '경우',
 '표',
 '기업체',
 '체인',
 '고용',
 '확률',
 '것',
 '이상',
 '논의',
 '바탕',
 '육아휴직',
 '기간',
 '만',
 '만',
 '세로',
 '연장',
 '도',
 '법률',
 '개정',
 '추가',
 '비용',
 '발생',
 '것',
 '예상',
 '작성자',
 '국회예산정책처',
 '법안',
 '비용',
 '추계',
 '팀',
 '팀',
 '장',
 '정',
 '문',
 '종',
 '예산',
 '분석관',
 '김',
 '태',
 '완']
In [131]:
# 빈도수 처리
ko = nltk.Text(tokens_ko, name='대한민국 국회 의안 제 1809890호')
In [132]:
# returns number of tokens (document length)

print(len(ko.tokens))
735
In [133]:
# returns number of unique tokens (중복값을 뺀 토큰 수)
# set : 중복이 없는 집합함수 뽑아주는 메서드

print(len(set(ko.tokens)))
250
In [134]:
# 빈도수로 정리
# returns frequency distribution

ko.vocab()
Out[134]:
FreqDist({'육아휴직': 38, '발생': 19, '만': 18, '이하': 18, '비용': 17, '액': 17, '경우': 16, '세': 16, '자녀': 14, '고용': 14, ...})
In [135]:
plt.figure(figsize=(12,6))
ko.plot(50)   # 상위 50개만 보여줘
plt.show()
In [136]:
# 불용어 처리
stop_words = ['.', '(', ')', ',', "'", '%', '-', 'X', ').', '×','의','자','에','안','번','호','을','이','다','만','로','가','를']

# 반복문으로 돌려서 불용어 모두 제거
ko = [each_word for each_word in ko if each_word not in stop_words]

ko
# 최종 결과는 리스트로 반환 됨
Out[136]:
['지방공무원법',
 '일부',
 '개정',
 '법률',
 '정의화',
 '의원',
 '대표',
 '발의',
 '발의',
 '연월일',
 '발',
 '정의화',
 '이명수',
 '김을동',
 '이사철',
 '여상규',
 '안규백',
 '황영철',
 '박영아',
 '김정훈',
 '김학송',
 '의원',
 '인',
 '제안',
 '이유',
 '및',
 '내용',
 '초등학교',
 '저학년',
 '경우',
 '부모',
 '사랑',
 '필요',
 '나이',
 '현재',
 '공무원',
 '자녀',
 '양육',
 '위',
 '육아휴직',
 '수',
 '자녀',
 '나이',
 '세',
 '이하',
 '초등학교',
 '저학년',
 '자녀',
 '위',
 '해당',
 '부모님',
 '일자리',
 '곧',
 '출산',
 '의욕',
 '저하',
 '문제',
 '수',
 '것임',
 '따라서',
 '육아휴직',
 '자녀',
 '연령',
 '세',
 '이하',
 '개정',
 '것임',
 '제',
 '항제',
 '법률',
 '제',
 '지방공무원법',
 '일부',
 '개정',
 '법률',
 '지방공무원법',
 '일부',
 '다음',
 '개정',
 '제',
 '항제',
 '중',
 '세',
 '이하',
 '초등학교',
 '취학',
 '전',
 '자녀',
 '세',
 '이하',
 '취학',
 '중인',
 '경우',
 '초등학교',
 '학년',
 '이하',
 '말',
 '자녀',
 '부',
 '칙',
 '법',
 '공포',
 '날',
 '시행',
 '신',
 '구조',
 '문대비',
 '표',
 '현',
 '행',
 '개',
 '정',
 '제',
 '휴직',
 '생',
 '략',
 '제',
 '휴직',
 '현행',
 '공무원',
 '다음',
 '각',
 '호의',
 '느',
 '하나',
 '해당',
 '사유',
 '직',
 '임용',
 '휴직',
 '명',
 '수',
 '다만',
 '제',
 '경우',
 '대통령령',
 '정',
 '사정',
 '직',
 '명',
 '생',
 '략',
 '현행',
 '세',
 '이하',
 '초등학교',
 '취',
 '세',
 '이하',
 '취학',
 '중인',
 '경우',
 '학',
 '전',
 '자녀',
 '양육',
 '위',
 '초등학교',
 '학년',
 '이하',
 '여',
 '여자',
 '공무원',
 '말',
 '자녀',
 '임신',
 '출산',
 '때',
 '생',
 '략',
 '생',
 '략',
 '현행',
 '현행',
 '지방공무원법',
 '일부',
 '개정',
 '법률',
 '등',
 '비용',
 '추계',
 '첨부',
 '사유',
 '재정',
 '요인',
 '개정안',
 '국가공무원',
 '법',
 '제',
 '항제',
 '중',
 '국가공무원',
 '육아',
 '휴직',
 '가능',
 '자녀',
 '연령',
 '세',
 '이하',
 '세',
 '이하',
 '방공',
 '무',
 '법',
 '제',
 '항제',
 '중',
 '지방',
 '공무원',
 '육아휴직',
 '가능',
 '자녀',
 '연',
 '령',
 '세',
 '이하',
 '세',
 '이하',
 '교육',
 '공무원',
 '법',
 '제',
 '항',
 '제',
 '중',
 '교육',
 '공무원',
 '육아휴직',
 '가능',
 '자녀',
 '연령',
 '세',
 '이하',
 '세',
 '이하',
 '남녀',
 '고용',
 '평등',
 '일',
 '가정',
 '양립',
 '지원',
 '관',
 '법률',
 '제',
 '항',
 '중',
 '근로자',
 '육아휴직',
 '가능',
 '자녀',
 '연령',
 '세',
 '이하',
 '세',
 '이하',
 '조정',
 '함',
 '추가',
 '재정',
 '요가',
 '예상',
 '첨부',
 '근거',
 '규정',
 '의안',
 '비용',
 '추계',
 '관',
 '규칙',
 '제',
 '항',
 '단서',
 '중',
 '제',
 '예상',
 '비용',
 '평균',
 '미만',
 '거나',
 '한시',
 '경비',
 '로서',
 '총',
 '미만',
 '경우',
 '해당',
 '함',
 '첨부',
 '사유',
 '개정안',
 '국가',
 '지방',
 '교육',
 '공무원',
 '및',
 '근로자',
 '육아휴직',
 '신청',
 '수',
 '자녀',
 '연령',
 '세',
 '이하',
 '세',
 '이하',
 '상향',
 '조정',
 '함',
 '추가',
 '재정',
 '요가',
 '예상',
 '법률',
 '개정안',
 '시행',
 '고',
 '가정',
 '경우',
 '현재',
 '자녀',
 '연령',
 '세이',
 '육아휴직',
 '신청',
 '국가',
 '지방',
 '교육',
 '공무원',
 '및',
 '근로자',
 '대상',
 '대상',
 '연령',
 '확대',
 '육아휴직',
 '신청',
 '수가',
 '정도',
 '것',
 '예상',
 '경우',
 '발생',
 '비용',
 '현행법',
 '월',
 '이나',
 '현재',
 '관련',
 '법령',
 '개정',
 '추진',
 '육아휴직',
 '지급',
 '월급',
 '액',
 '비례',
 '육아휴직',
 '여가',
 '지급',
 '기',
 '때문',
 '법령',
 '개정',
 '가정',
 '추계',
 '경우',
 '육아휴직',
 '급여',
 '액',
 '육아휴직',
 '지급',
 '월급',
 '여의',
 '해당',
 '육아휴직',
 '발생',
 '경우',
 '발생',
 '비용',
 '체인',
 '고용',
 '인건비',
 '육아휴직',
 '월급',
 '액',
 '대비',
 '육아휴직',
 '지급',
 '임금',
 '더',
 '이상',
 '발생',
 '따라서',
 '실제',
 '발생',
 '비용',
 '육',
 '휴직',
 '지급',
 '월',
 '급여',
 '액',
 '연령',
 '확대',
 '발생',
 '비용',
 '인',
 '육아휴직',
 '월급',
 '액',
 '체인',
 '고용',
 '인건비',
 '차',
 '액',
 '값',
 '추가',
 '재정',
 '소요',
 '발생',
 '볼',
 '수',
 '추가',
 '비용',
 '발생',
 '여부',
 '위',
 '비용',
 '대한',
 '리모',
 '델',
 '비용',
 '발생',
 '여부',
 '하자',
 '모델',
 '사',
 '용',
 '변수',
 '다음',
 '정의',
 '발생',
 '비용',
 '육아휴직',
 '액',
 '육아휴직',
 '대상자',
 '수',
 '육아휴직',
 '대상자',
 '월급',
 '액',
 '육아휴직',
 '발생',
 '경우',
 '대체',
 '고용',
 '확률',
 '대체',
 '고용',
 '인력',
 '지급',
 '월급',
 '액',
 '위',
 '수식',
 '육아휴직',
 '액',
 '육아휴직',
 '월급',
 '액',
 '예정',
 '므',
 '육아휴직',
 '액',
 '육아휴직',
 '발생',
 '경우',
 '대체',
 '고용',
 '확률',
 '고용노동부',
 '육아휴직',
 '관련',
 '자료',
 '이용',
 '고용노동부',
 '경우',
 '육아휴직',
 '급여',
 '대상자',
 '명',
 '육아휴직',
 '체인',
 '고용',
 '상인',
 '명',
 '현황',
 '정리',
 '다음',
 '표',
 '표',
 '육아휴직',
 '급여',
 '수급',
 '수',
 '및',
 '체인',
 '고용',
 '현황',
 '단위',
 '명',
 '평균',
 '육아휴직',
 '급여',
 '수급',
 '체인',
 '채용',
 '비',
 '율',
 '자료',
 '고용노동부',
 '자료',
 '바탕',
 '국회예산정책처',
 '작성',
 '위',
 '표',
 '자료',
 '육아휴직',
 '발생',
 '경우',
 '대체',
 '고용',
 '확률',
 '값',
 '가정',
 '비용',
 '발생',
 '가정',
 '위',
 '수식',
 '다시',
 '작성',
 '다음',
 '수식',
 '육아휴직',
 '액',
 '위',
 '수식',
 '육아휴직',
 '월',
 '급여',
 '액',
 '대입',
 '대체',
 '고용',
 '인력',
 '지급',
 '월',
 '급여',
 '액',
 '추정',
 '육아휴직',
 '월',
 '원',
 '가정',
 '대체',
 '고용',
 '인력',
 '육아휴직',
 '월',
 '급여',
 '액',
 '배',
 '달',
 '월',
 '이상',
 '지급',
 '추가',
 '비용',
 '발생',
 '대체',
 '고용',
 '인력',
 '육아휴직',
 '더',
 '월급',
 '액',
 '주지',
 '것',
 '배',
 '이상',
 '월급',
 '주지',
 '것',
 '이기',
 '때문',
 '추가',
 '비용',
 '발생',
 '보기',
 '위',
 '수식',
 '체인',
 '고용',
 '확률',
 '가정',
 '경우',
 '육아휴직',
 '체인',
 '월',
 '이상',
 '지급',
 '추가',
 '비용',
 '발생',
 '행정안전부',
 '통계',
 '자료',
 '행정안전부',
 '통계',
 '연감',
 '지방',
 '공무원',
 '육',
 '휴직',
 '현황',
 '자료',
 '여기',
 '육아휴직',
 '발생',
 '경우',
 '체인',
 '주로',
 '임용',
 '기자',
 '일용직',
 '활용',
 '것',
 '따라서',
 '공무원',
 '경우',
 '표',
 '기업체',
 '체인',
 '고용',
 '확률',
 '것',
 '이상',
 '논의',
 '바탕',
 '육아휴직',
 '기간',
 '세로',
 '연장',
 '도',
 '법률',
 '개정',
 '추가',
 '비용',
 '발생',
 '것',
 '예상',
 '작성자',
 '국회예산정책처',
 '법안',
 '비용',
 '추계',
 '팀',
 '팀',
 '장',
 '정',
 '문',
 '종',
 '예산',
 '분석관',
 '김',
 '태',
 '완']
In [137]:
# 불용어 제거 후 그래프로 확인
ko = nltk.Text(ko, name='대한민국 국회 의안 제 1809890호')

plt.figure(figsize=(12,6))
ko.plot(50)   # Plot sorted frequency of top 50 tokens
plt.show()
In [163]:
ko.count('초등학교')
Out[163]:
6
In [164]:
plt.figure(figsize=(12,6))

# dispersion_plot : 텍스트 내 단어 사용 빈도와 위치를 분산 그래프로 그려줌
ko.dispersion_plot(['육아휴직', '초등학교', '공무원'])
In [165]:
# 단어주변부 확인
ko.concordance('초등학교')
Displaying 6 of 6 matches:
 안규백 황영철 박영아 김정훈 김학송 의원 인 제안 이유 및 내용 초등학교 저학년 경우 부모 사랑 필요 나이 현재 공무원 자녀 양육 위 육아
 나이 현재 공무원 자녀 양육 위 육아휴직 수 자녀 나이 세 이하 초등학교 저학년 자녀 위 해당 부모님 일자리 곧 출산 의욕 저하 문제 수 
일부 개정 법률 지방공무원법 일부 다음 개정 제 항제 중 세 이하 초등학교 취학 전 자녀 세 이하 취학 중인 경우 초등학교 학년 이하 말 자
항제 중 세 이하 초등학교 취학 전 자녀 세 이하 취학 중인 경우 초등학교 학년 이하 말 자녀 부 칙 법 공포 날 시행 신 구조 문대비 표 
 수 다만 제 경우 대통령령 정 사정 직 명 생 략 현행 세 이하 초등학교 취 세 이하 취학 중인 경우 학 전 자녀 양육 위 초등학교 학년 
 이하 초등학교 취 세 이하 취학 중인 경우 학 전 자녀 양육 위 초등학교 학년 이하 여 여자 공무원 말 자녀 임신 출산 때 생 략 생 략 
In [166]:
# 연이어 사용된 단어 확인
ko.collocations()
초등학교 저학년; 근로자 육아휴직; 육아휴직 대상자; 공무원 육아휴직
In [168]:
# 시각화
data = ko.vocab().most_common(150)

# for winow : font_path='c:/Windows/Fonts/malgun.ttf'
# for mac : font_path='/Library/Fonts/AppleGothic.ttf'
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()