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()