-
텍스트 구조적 군집분석Python 2020. 3. 2. 15:07
# 패키지 로딩하기
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import scipy.cluster.hierarchy as shc
from konlpy.tag import Hannanum
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.cluster import AgglomerativeClustering# 한나눔 형태소 분석기 클래스 만들기
hannanum = Hannanum()# 데이터 읽어오기
news = pd.read_csv("d:/deeplearning/textmining/군집분석데이터.csv", engine = "python")# 명사 추출하기와 빈도 구하기
news_docs = []
for i in news["기사내용"]:
news_docs.append(hannanum.nouns(i))for i in range(len(news_docs)):
news_docs[i] = " ".join(news_docs[i])news_vec = CountVectorizer()
news_x = news_vec.fit_transform(news_docs)# 데이터 프레임 만들기
news_df = pd.DataFrame(news_x.toarray(), columns = news_vec.get_feature_names())
news_df.index = news["검색어"]# 구조적 군집분석
news_cluster = AgglomerativeClustering(n_clusters = 3, linkage = "ward")
news_cluster.fit_predict(news_df)# 덴드로그램 작성하기
plt.figure(figsize = (10, 7))
plt.title("Customer Dendrograms")
dend = shc.dendrogram(shc.linkage(news_df, method = "ward"))
plt.show()[출처] 잡아라! 텍스트마이닝 with 파이썬, 서대호 지음, BJ, p90~91
'Python' 카테고리의 다른 글
사전 기반의 감성분석(Sentiment Analysis) (0) 2020.03.03 LDA(Latent Dirichlet Allocation) (0) 2020.03.02 텍스트 군집분석 (0) 2020.03.02 word cloud (0) 2020.03.02 KoNLPy 패키지에서 제공하는 형태소 분석기 (0) 2020.02.27