인공지능/RNN

자연어 처리 ( text에 있는 word에 대한 빈도수 도출하기 )

쿠와와 2020. 11. 24. 16:22
import nltk
import collections
import matplotlib.pyplot as plt

# 세익스피어의 헴릿에 등장하는 주인공들의 출현 빈도로 막대 그래프를 그려보세요
# gutemberg
# 햄릿, 거트루드, 오필리어, 클로디어스, 레어티스, 호레이쇼

# print(nltk.corpus.gutenberg.fileids())

# 1. 햄릿 읽기
txt = nltk.corpus.gutenberg.raw('shakespeare-hamlet.txt') # text 전체

# 2. actors 찾기
names = ['hamlet', 'gertrude', 'claudius', 'laertes', 'ophelia', 'polonius', 'horatio']
txt = txt.lower()

docs = nltk.tokenize.regexp_tokenize(txt, r'\w+')
print(docs)
# 3. 빈도 계산
freq = collections.Counter(docs)

values = [freq[name] for name in names]
print(values)
# print(docs)

# 4. 빈도 그래프 작성
plt.bar(names, values)
plt.show()