网站大量收购独家精品文档,联系QQ:2885784924

关键词提取自然语言处理(1).doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
专业 班级 姓名 学号 实验课程 指导教师 实验日期 同实验者 实验项目 关键词提取 实验设备及器材 Pycharm2021.1.3,Python3.8.6 实验步骤、数据记录及处理 1 第三方库的安装(以Pycharm为例安装jieba库,其余同理) 方法一:在Pycharm底部Terminal中以命令行形式安装,使用了清华镜像,安装较快,即pip install -i /simple jieba。 图1.1 安装jieba库 方法二:在Pycharm底部以命令行形式安装,未使用镜像,安装较慢。 图1.2 安装jieba库 方法三:通过左上角File-Settings-Project-Python Interpreter-“+”进行jieba库的安装。 图1.3 安装jieba库 2 无监督关键词提取算法实现 训练一个关键词提取算法需要以下几个步骤: 1)加载已有的文档数据集; 2)加载停用词表; 3)对数据集中的文档进行分词; 4)根据停用词表,过滤干扰词; 5)根据数据集训练算法; 根据训练好的关键词提取算法对新文档进行关键词提取要经过以下环节: 1)对新文档进行分词; 2)根据停用词表,过滤干扰词; 3)根据训练好的算法提取关键词; 注:停用词表stopword.txt与数据集corpus.txt,可使用NLTK的英文语料库转换为中文,也可以自行检索或使用中文预料库,例如CCL语料库,北京语言大学汉语语料库(bcc)等。 2.1 加载模块 import math import jieba # 进行中文分词,不区分词性 import jieba.posseg as psg # 进行区分词性的中文分词 from gensim import corpora, models # corpora建立词空间和词袋模型, models用于调用gensim中的TF-IDF、LSI、LDA原生模型 from jieba import analyse # jieba的analyse有TextRank算法的模型 import functools # 用于sorted函数中,对目标按照一定的函数规则进行排序 2.2 定义好停用词表的加载方法 def get_stopword_list(): # 停用词表存储路径,每一行为一个词,按行读取进行加载 # 进行编码转换确保匹配准确率 stop_word_path = ./stopword.txt stopword_list = [sw.replace(\n, ) for sw in open(stop_word_path, encoding=utf-8).readlines()] return stopword_list 2.3 定义一个分词方法 分词方法,调用结巴接口,包括不识别词性和识别词性两种方式,用pos参数进行控制,pos为判断是否采用词性标注 def seg_to_list(text, pos=False): if not pos: seg_list = jieba.cut(text) else: seg_list = psg.cut(text) return seg_listreturn seg_list 2.4 定义干扰词过滤方法 def word_filter(seg_list, pos=False): 1. 根据分词结果对干扰词进行过滤; 2. 根据pos判断是否过滤除名词外的其他词性; 3. 再判断是否在停用词表中,长度是否大于等于2等; stopword_list = get_stopword_list() # 获取停用词表 filter_list = [] # 保存过滤后的结果 # 下面代码: 根据pos参数选择是否词性过滤 ## 下面代码: 如果不进行词性过滤,则将词性都标记为n,表示全部保留 for seg in seg_list: if not pos: word = seg flag = n else: word = seg.word # 单词 flag = seg.flag # 词性 if not flag.startswith(n): continue # 过滤停用词表中的词,以及长度为2的词

文档评论(0)

钟爱书屋 + 关注
官方认证
服务提供商

为中小学学生教育成长提供学习参考资料,学习课堂帮助学生教师更好更方便的进行学习及授课,提高趣味性,鼓励孩子自主进行学习,资料齐全,内容丰富。

认证主体韵馨科技(深圳)有限公司
IP属地广东
统一社会信用代码/组织机构代码
91440300MA5G40JF61

1亿VIP精品文档

相关文档