# -*- coding: utf-8 -*-
import MySQLdb
import pandas as pd
import jieba
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import CountVectorizer
conn = MySQLdb.connect("192.168.67.452", "ASF", "SDFDFG", "FGF", charset='utf8' )
curs = conn.cursor()
sql1='''select content from evaluate_info limit 100''' #sql語句
curs.execute (sql1)
row=curs.fetchall() #讀取數據表內容,返回元祖類型,元祖的每個元素還是爲元祖
data=[]
for i in row:
i=list(i) #將元祖的每個元素轉換爲列表
new=str(i[0]) #將列表轉換爲字符串
xx = ' '.join(jieba.cut(new)) #每一段字符串進行分詞
#print(xx)
data.append(xx) #追加寫入data列表,得到的數據格式爲:a=['我 愛 學習','我 喜歡 北京']
data1=' '.join(data) #轉換爲一下格式:a=['我 愛 學習 我 喜歡 北京']
data2=[data1] #轉換爲列表格式,例如:a=['a b c']
curs.close()
conn.close()
datfrm=[]
vectorizer=CountVectorizer() #該類會將文本中的詞語轉換爲詞頻矩陣,矩陣元素a[i][j] 表示j詞在i類文本下的詞頻
transformer=TfidfTransformer() #該類會統計每個詞語的tf-idf權值
X=vectorizer.fit_transform(data2) #將文本轉爲詞頻矩陣
tfidf=transformer.fit_transform(X) #計算tf-idf,
word=vectorizer.get_feature_names() #獲取詞袋模型中的所有詞語
weight=tfidf.toarray() #將tf-idf矩陣抽取出來,元素a[i][j]表示j詞在i類文本中的tf-idf權重
for i in range(len(weight)): #打印每類文本的tf-idf詞語權重
for j in range(len(word)):
#print(word[j],weight[i][j])
a=[word[j]]
b=[weight[i][j]]
datfrm.append({'word':a,'weight':b})
dataframe = pd.DataFrame(datfrm)
dataframe.sort_index(by='weight',ascending = False)
#print(dataframe)
dataframe.to_csv("ciyun2.csv",index=False,sep=',')