关键词中心性匹配以及词云绘制
第一步:
利用jieba分词库,对文本内容按行进行切割处理,并在剔除无关词汇的基础之上,得到初步筛选的中心性词汇列表。
第二步:
将第一步获得的毛数据进行清洗操作,即利用关键词文件,结合第一步获得的数据文件,两者进行匹配,留下相同的部分。
第三步:
根据词汇数量和每个关键词出现的频率计算获得其中心性。
代码:
object_list = []
remove_words = [u'的', u',',u'和', u'是', u'一作', u'皆', u'对',u'等',u'能',u'都',u'其二',u'四首',u'三首',
u'。',u' ',u'、',u'(',u')',u'以',u'\r',u'\u3000',u'《',u'》',u'他',u'者',u'则',u'非',u'却',u'但',u'/',u'二首',u'其一',
u'中',u'在',u'了',u'曰',u'无',u'之',u'只',u'不',u'与',u'为',u'你',u'其',u'又',u'人',u'于',u'可',u'从',u'如',
u'到',u'一',u'矣',u'亦',u'既',u'乎',u'g',u'10g',u'5g',
u'而',u'也',u'我',u'有'] # 自定义去除词库
#读取文件
with open('download_nkxch.txt',"r",encoding="utf-8") as f:
lines = f.readlines()
for line in lines:
string_data = str(line)
# 文本预处理
pattern = re.compile(u'\t|\n|\。|,|?|;|\(|\)|\·|“|”|;|!|:') # 定义正则表达式匹配模式
string_data = re.sub(pattern, '', string_data) # 将符合模式的字符去除
# 文本分词
seg_list_exact = jieba.lcut(string_data, cut_all = False) # 精确模式分词
for word in seg_list_exact: # 循环读出每个分词
if word not in remove_words: # 如果不在去除词库中
object_list.append(word) # 分词追加到列表
# 词频统计
word_counts = collections.Counter(object_list) # 对分词做词频统计
names = list(word_counts.keys())
values = list(word_counts.values())
length = len(word_counts)
word_counts_top10 = word_counts.most_common(2000) # 获取前10最高频的词
#print (word_counts_top10) # 输出检查
# print(values)
book = xlwt.Workbook(encoding='utf-8',style_compression = 0)
sheet = book.add_sheet('词频统计',cell_overwrite_ok=True)
import xlrd
import xlwt
import csv
workbook1 = xlrd.open_workbook('excels\\aaa.xls')
sheet= workbook1.sheet_by_index(0)
sheet2 = workbook1.sheet_by_index(1)
nrows = sheet.nrows #获取总行数
nrows2 = sheet2.nrows
values=[]
location=[]
sortid=[]
for i in range(nrows-1):
cells = sheet.cell_value(i+1,0)
num = sheet.cell_value(i+1,1)
for j in range(nrows2-1):
cellss = sheet2.cell_value(j+1,1)
id = sheet2.cell_value(j+1,2)
if (cells == cellss) :
values.append(cellss)
location.append(num)
sortid.append(id)
book = xlwt.Workbook(encoding='utf-8',style_compression = 0)
sheet = book.add_sheet('词频统计',cell_overwrite_ok=True)
length = len(values)
for i in range(length):
sheet.write(i,0,values[i])
sheet.write(i,1,location[i])
sheet.write(i,2,sortid[i])
savepath = 'excels\\ddd.xls'
book.save(savepath)