앙케이트 조사 데이터를 분석해 본다【제3회:형태소 해석】

이번에는 텍스트 마이닝의 기본적인 기법 중 하나인 형태소 해석(문장을 의미 있는 최소 단위로 분해하고 의미나 품사 등을 판별한다)에 대해 Python으로 시험해 보았습니다.

데이터는 아래 설문 조사에서 "전자 버전 약 수첩을 사용하고 싶은 이유"에 대한 자유 답변을 사용했습니다.

「전자판 약 수첩에 관한 의식 조사」를 실시했습니다
htps //w w. 니쵸. 이. jp/코 r 포라테/네 ws 레아세/11633/

① 우선 라이브러리를 가져옵니다. 이번에는 MeCab을 사용했습니다.
import MeCab
from MeCab import Tagger
from matplotlib import pyplot as plt
from wordcloud import WordCloud

② 텍스트 파일을 읽어 형태소 해석을 실시하는 것으로 문장을 품사별로 분해해 줍니다.
df = "survey3.txt"

with open(df, "r", encoding="utf-8") as f:
    opinion = f.read()

tagger = MeCab.Tagger()
parse = tagger.parse(opinion)

print(parse)



③ 워드클라우드에 의해, 자주 사용되는 단어를 시각적으로 표현할 수 있습니다. 이번에는 명사를 선택하고 워드 클라우드를 만듭니다.
with open('survey3.txt', mode='rt', encoding='utf-8') as fi:
    source_text = fi.read()

tagger = MeCab.Tagger()
tagger.parse('')
node = tagger.parseToNode(source_text)

word_list = []
while node:
    word_type = node.feature.split(',')[0]
    if word_type == '名詞':
        word_list.append(node.surface)
    node = node.next

word_chain = ' '.join(word_list)

matplotlib로 시각화합니다.
W = WordCloud(width=1280, height=960, background_color='white', colormap='PuBu', font_path='C:\Windows\Fonts\yumin.ttf').generate(word_chain)

plt.imshow(W)
plt.axis('off')
plt.show()

출력된 워드 클라우드를 보면 「편리」나 「관리」라는 말이 눈에 띕니다. 수첩을 전자화하는 것에 의한 편리성의 향상이나, 관리의 용이함이 포인트인 것을 엿볼 수 있습니다.



이번은 기본적인 수법으로서 형태소 해석을 실시해 빈출 단어를 조사해 보았습니다. 여기에서 추가로 공기 분석 등을 실시함으로써 보다 깊은 분석이 가능하게 됩니다.

좋은 웹페이지 즐겨찾기