采集内容插入词库(复旦大学《信息内容安全》(互联网大数据技术))

优采云 发布时间: 2021-09-04 20:06

  采集内容插入词库(复旦大学《信息内容安全》(互联网大数据技术))

  复旦大学“信息内容安全”(互联网大数据技术)本科课程。经过一个学期的学习,同学们对爬虫技术、文本预处理、大数据语义、文本分析与挖掘等算法、模型和实现技术进行了较为系统的学习。同学们都很感兴趣,本期陆续发布了多款优秀的PJ。本刊刊登邓瑞君、陆小凡、龙豆豆完成的基于爬虫和文本挖掘的迪士尼攻略创作。

  课程PJ选题的目的

  上海迪士尼乐园每年都会吸引大量游客,但很多人往往不清楚乐园的规则,需要提前准备的行李,以及准备不足的注意事项,以及一些不愉快的情节会在游玩过程中遇到。针对这些问题,本课程的PJ通过采集为计划去上海迪士尼乐园的朋友提供了一些信息,分析、展示相关评论,让大家在准备充分的情况下享受乐园的美好时光。

  主要技术流程

  主要技术流程包括:数据源选择、文本预处理、文本挖掘和可视化。

  如果想去迪士尼,可以直接翻到本文后半部分,查看我们生成的导览图。如果没有,请在留言区写下您的话。

  数据采集

  数据来源:去哪里查看迪士尼旅游项目的审核信息。

  Data采集:评论列表采用Ant Design's List的形式。通过简单的页面分析,可以找到评论页面翻页URL的组成规则。评论分为短评论和长评论,长评论可以通过“阅读全部”获取全部内容。具体方法是:

  要获取在 a.seeMore 中显示所有长评论的 URL,请使用 link=e_soup.select('a.seeMore')

  read_more.append(link[0].get('href'))

  获取长评论的 URL。

  

  我在实践过程中发现,70、80页后,去哪儿服务器会提醒频繁访问同一个IP地址,需要验证码才能继续访问。因此,在实际操作过程中需要妥善处理,减少访问频率,做一个有礼貌的爬虫。由于本课程中的PJ只是练习,所以不会*敏*感*词*恶意爬取网站内容。进一步阅读:爬虫的合规性。

  文本预处理

  预处理过程包括:通过正则表达式匹配提取评论中的中文信息,jieba分词,添加自定义词典,去除停用词,提取tf-idf信息和词性信息。

  使用 jieba 加载自定义词典。这部分添加了一些迪士尼的游乐项目名称、餐厅名称等 jieba.load_userdict("custom_dic.txt").

  

  使用jieba.analysis分别提取形容词中的关键词和名词中的关键词,或者使用jieba.posseg.lcut进行分词获取词性标签。

  jieba.analysis的参数分析:

  第一个参数是要提取的关键词的文本;

  第二个参数是提取的第一个关键字的个数,这里是前一百个;

  第三个参数是决定是否返回每个关键词的权重,这里是选择;

  第四个参数是词性过滤,允许提取词性。抽取形容词类时,设置“'a','an','ad','ag'”,抽取名词类时,设置“'n','ns'”。

  文本挖掘

  这部分对已经爬下来的前5页数据进行预处理得到分词结果,然后人工分类,将每一类词写入txt文件,每行一个词。使用sklearn的Countervectorizer进行特征提取,将训练词汇和待分类词汇转换为向量。使用sklearn的svm分类器(核函数是线性的)学习训练词汇并对要分类的词汇进行分类。

  分类过程包括在人工标注的数据集上评估SVM分类方法下不同核函数的分类效果,然后选择分类效果最好的线性核函数对所有爬取的数据进行分类并生成对应的类别词云。类别分为:游乐项目和园区内地点、园区内餐饮、准备的行李和出现在评论中的角色。例如,当只训练和测试人工标注的游乐项目和地点和食品和餐饮两类时,得到的F值评价结果如下。

  

  对于每个文本,使用两种方法生成词云:一种基于词频,另一种基于tf-idf值,选择效果较好的作为结果。

  基于词频的方法是调用wordcloud.generate函数

  根据tf-idf方法,先使用jieba.analysis.extract_tags提取tf-idf值,然后使用wordcloud.generate_from函数根据tf-idf值生成词云。

  词云生成(策略)

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线