# -*- 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=',')