中医汉英语料库数字资源平台项目(九)

关键词中心性匹配以及词云绘制

第一步:

利用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)
    
        



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值