博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
聊天机器人语料批量处理-自动提取关键词并自动写入文件
阅读量:6466 次
发布时间:2019-06-23

本文共 2168 字,大约阅读时间需要 7 分钟。

介绍:目前市面上的大多数聊天机器人(如图灵机器人)仍是基于规则来人为添加语料(尤其是专业问题)。 作者在工作过程中发现专业问题语料数量庞大,人为去添加关键词耗时耗力。因此,这里向大家介绍本人 批量提取每句Question关键词并批量逐行写入文件的方法,供大家参考使用。 备注:经过事前测试,发现jieba.analyse.extract_tags()方法能较好的适用于专业词汇抽取, 因此本文首选其作为提取关键词的方法。代码如下。 import osimport jiebaimport jieba.analyseimport csv#设置工作环境为chuli文件夹内os.chdir("C://Users//dicey//desktop//chuli")#rough.csv为3万8千行待处理Questionrough = csv.reader(open("rough.csv",'r',encoding='utf-8'))  # r表示以读的方式打开文件#把每句Question提取出的关键词逐行写入keys.csv文件keys = csv.writer(open("keys.csv",'w',encoding='utf-8'))  #w表示以写的方式打开文件#检查rough.csv文件的#直接打印row会显示每句为一个数组的二元数组#使用''.join(row)打印会显示每句各占一行的字符串for row in rough:    print(''.join(row))

 

打印效果如下图。

 

开始正餐:

# 根据每句Question的字符数长度不同,分成以下5种情况 # 当字符数小于等于15时,提取关键词topK=2,也就是提取两个关键词。其余以此类推。# keys为csv.writer这个类的一个对象,调用.writerow()这个方法,把得到的关键词(以逗号分隔)逐行写入keys.csv文件 # 当Question字数已经超过100时,不论多长,也只最多提取6个关键词 for row in rough:    if len(''.join(row))<= 15:        key_words = jieba.analyse.extract_tags(''.join(row), topK=2,withWeight=False, allowPOS=()) ## ''.join(row)目的在于把数组型元素row转换成字符串        keys.writerow(key_words)    elif 15
<=30: key_words = jieba.analyse.extract_tags(''.join(row), topK=3, withWeight=False, allowPOS=()) keys.writerow(key_words) elif 30
<=50: key_words = jieba.analyse.extract_tags(''.join(row), topK=4, withWeight=False, allowPOS=()) keys.writerow(key_words) elif 50
<=100: key_words = jieba.analyse.extract_tags(''.join(row), topK=5, withWeight=False, allowPOS=()) keys.writerow(key_words) else: key_words = jieba.analyse.extract_tags(''.join(row), topK=6, withWeight=False, allowPOS=()) keys.writerow(key_words) ## 最后关闭以上两个csv文件 (open('rough.csv','r',encoding='utf-8')).close (open('keys.csv','w',encoding='utf-8')).close ## 这里(open('rough.csv','r',encoding='utf-8')).close略显臃肿, ## 推荐事先用变量来承接:roughfile = open('rough.csv','r',encoding='utf-8'), ## keysfile = open('keys.csv','w',encoding='utf-8') ## 之后需关闭文件即可写成roughfile.close(),keysfile.close()
 

 

最后把keys.csv文件中的字段在EXCEL中稍作处理即可生成如下以空格隔开的关键词列表,复制粘贴到原Question文件中,顺序能正常匹配。

部分展示如下图:

 

转载于:https://www.cnblogs.com/wangliman/p/9695219.html

你可能感兴趣的文章
杂七杂八
查看>>
samba、nginx服务
查看>>
Activity竟然有两个onCreate方法,可别用错了
查看>>
Linux经常使用命令(十六) - whereis
查看>>
Tomcat
查看>>
插件编译 版本问题
查看>>
android中TextView的阴影设置
查看>>
core dump相关
查看>>
MySQL如何导出带日期格式的文件
查看>>
Linux五种IO模型
查看>>
Bootstrap技术: 模式对话框的使用
查看>>
小知识,用myeclipes找jar
查看>>
linux下的chm阅读器?
查看>>
[LintCode] Longest Substring Without Repeating Characters
查看>>
in-list expansion
查看>>
设计原则(四):接口隔离原则
查看>>
基于react的滑动图片验证码组件
查看>>
iOS快速清除全部的消息推送
查看>>
ecshop二次开发攻略
查看>>
java单例模式深度解析
查看>>