# tf_idf('Token', 'Document', [특정 모집단의 Tokens list])
from txtutil import tf_idf
tf_idf('갤럭시', '갤럭시 갤럭시 노트 신제품 출시', ['갤럭시','갤럭시','노트','신제품','출시','출시'])
# 모집단 Document 목록을 불러온다
import re
from glob import glob
filelist = glob('./data/kr-Report_201?.txt')
filelist
%%time
from txtutil import txtnoun
from nltk.tokenize import word_tokenize
# 모집단 Docuement 의 Token 들을 전처리 한다
docs_tokens = []
skips = {'갤러시':'갤럭시', '가치창출':'가치창출'}
for file in filelist:
tokens = word_tokenize(txtnoun(file, skip=skips))
tokens = [token for token in tokens
if len(token) > 2]
docs_tokens += tokens
# 결과를 Pandas를 활용하여 보기좋게 출력
from nltk import FreqDist
import pandas as pd
print(pd.Series(FreqDist(docs_tokens)).sort_values(ascending=False)[:5])
# 분석할 Document를 불러온다
texts = txtnoun('./data/kr-Report_2018.txt', skip=skips)
tokens = word_tokenize(texts)
tokens = [token for token in tokens
if len(token) > 2]
tokens[:7]
%%time
# 위에서 수집한 idf 를 바탕으로 tf-idf를 계산한다
from txtutil import tf_idf
token_set = list(set(tokens))
result_dict = {txt : tf_idf(txt, tokens, docs_tokens) for txt in token_set}
# 2018년도 tf-idf : TF-IDF 결과를 Pandas로 출력
tfidf_2018 = pd.Series(result_dict).sort_values(ascending=False)
print(tfidf_2018[:8])
%%time
# 2017 년도 Document 불러오기
texts = txtnoun('./data/kr-Report_2017.txt', skip=skips)
tokens = word_tokenize(texts)
tokens = [token for token in tokens
if len(token) > 2]
# 2017 년도 Token 의 tf-idf 계산한다
token_set = list(set(tokens))
result_dict = {txt : tf_idf(txt, tokens, docs_tokens) for txt in token_set}
# 2018년도 tf-idf : TF-IDF 결과를 Pandas로 출력
tfidf_2017 = pd.Series(result_dict).sort_values(ascending=False)
# tfidf_2017[:8]
# 2017년도와 2018년도의 tf_idf를 비교하여 출력한다
result = pd.DataFrame()
result['2017'] = tfidf_2017.keys()[:15]
result['2018'] = tfidf_2018.keys()[:15]
result