2021SC@SDUSC
前言
到目前为止,已完成论文分析、源码分析、数据集爬取、修改原程序代码并在中文数据集上运行,这篇文章将从数据爬取开始,正式在获取的中文数据集上运行并获取相关数据。
爬虫数据
关键词如下:
key_words=['大数据','自然语言处理','人工智能','物联网','5G','信息检索','操作系统','计算机视觉','网络安全','工业软件']
运行截图:
以下均截取自对“大数据”的爬取过程。
生成的数据集概况:
my_data
——gold(关键词文档)
——doc(标题+摘要文档)
gold和doc具有一一对应关系。
doc文件夹截图:
运行positionrank结果
针对中文数据集进行优化
增加停用词
在之前的处理过程中没有针对中文数据集进行去除停用词操作,于是我在网络上找到了一个中文常见停用词表。
共计一共1598个停用词。
修改词项过滤算法代码
以下截取了该算法与停用词有关的代码:
def filter_candidates(self, stopwords_file=None, max_phrase_length=4):
"""
基于多重保证进行词项过滤
:param stopwords_file: 停用词列表文件
:param max_phrase_length: 最长短语长度
:param min_word_length: 最短词长度
:param valid_punctuation: 特殊符号
:return:
"""
# 如果停用词没有提供
stopwords_list = []
if stopwords_file is None:
pass
else:
with codecs.open(stopwords_file, 'rb', encoding='utf-8') as f:
f.readlines()
f.close()
for line in f:
stopwords_list.append(line)
……
……
……
# 去除含有停用词的部分
if set(tokens).intersection(stopwords_list):
indices.append(i)
运行程序并获得最终结果
结果没有太大的区别:
这也侧面说明通过pos_tag词性标记,并去除不满足词性要求的词已经能够取得很好的效果。
至此,已完成项目负责人对项目提出的的最终目标——在爬取的百度学术中文数据集上运行PositionRank模型。