【python】swjtu西南交大互联网搜索引擎 项目一 报告:搜索引擎文本预处理

server/2024/10/18 6:03:00/

项目要求:

通过下载引擎(Web Crawler/Spider)自动下载至少500个英文文档/网页,以及500个中文文档/网页,越多越好,并保留原始的文档/网页备份(如:News_1_Org.txt)

编程对所下载文档进行自动预处理:

将各个单词进行字符化,完成删除特殊字符、大小写转换等操作

调研并选择合适的中文分词技术和工具实现中文分词

删除英文停用词(Stop Word)

删除中文停用词

调用或者编程实现英文Porter Stemming功能

将中文文档进行字符化,即可被搜索引擎索引的字符单元

对于英文文档,经过以上处理之后,将经过处理之后所形成简化文档保存(如:News_1_E.txt),以备以后的索引处理

对于中文文档,经过以上处理之后,将经过处理之后所形成简化文档保存(如:News_1_C.txt),以备以后的索引处理

实现过程

文档下载

使用python的第三方库requests,可以向服务器发送http的get请求获得响应数据,利用库bs4的BeautifulSoup对获得的html内容进行解析,除去标签,只提取出文本内容,保存至文件。

预处理

中文文档原始内容进行分词前还利用了正则表达式删去了非中文字符。中文分词用到的是第三方库jieba

英文文档用了正则表达式删去了一些特殊字符,比如句号,分号,问号,逗号,保留了单词里的连字符。并用函数lower()将所有英文字母转化成了小写。后续处理用到的是第三方库nltk,可以实现分词(英文每个单词已经分开,此处的分词是指快捷地返回词的列表)、删去停用词和Porter Stemming功能。

参考视频:

Python 【00-先导课】爆肝两个月!拜托三连了!这绝对是全B站最用心(没有之一)的Python+爬虫公开课程,从入门到(不)入狱 !_哔哩哔哩_bilibili

【Python Jieba 中文分词工具-哔哩哔哩】 01 - jieba 工具介绍_哔哩哔哩_bilibili

【英文分词 | 自定义词组 | 词形还原 | 词频统计【python-nltk】-哔哩哔哩】 英文分词 | 自定义词组 | 词形还原 | 词频统计【python-nltk】_哔哩哔哩_bilibili

参考文章

【小沐学NLP】Python使用NLTK库的入门教程-CSDN博客

Python——jieba优秀的中文分词库(基础知识+实例)-CSDN博客

报告下载

https://download.csdn.net/download/qq_61814350/89207414


http://www.ppmy.cn/server/14188.html

相关文章

C语言游戏实战(4):人生重开模拟器

前言: 人生重开模拟器是前段时间非常火的一个小游戏,接下来我们将一起学习使用c语言写一个简易版的人生重开模拟器。 网页版游戏: 人生重开模拟器 (ytecn.com) 1.实现一个简化版的人生重开模拟器 (1) 游戏开始的时…

买卖股票+跳跃游戏 贪心算法

买卖股票的最佳时机 只收集正利润即可&#xff01; class Solution {public int maxProfit(int[] prices) {int sum0;for(int i0;i<prices.length-1;i){if(prices[i1]-prices[i]>0){//只收集正利润sumprices[i1]-prices[i];}}return sum;} } 跳跃游戏 看覆盖范围&…

wls2 ubuntu conda出现诡异ssl错误

conda突然用不了了&#xff0c;查了两个小时才发现解决办法&#xff0c;赶紧趁热打铁记录下。 背景 wls2开的ubuntu20&#xff0c;子系统打开了ssh&#xff0c;宿主机打开了端口转发。使用同一局域网的另一台机器&#xff0c;通过vscode来访问宿主机的子系统。 问题描述 反…

【测试总结】测试时如何定位一个bug?是前端还是后端?

作为一道面试题&#xff0c;它算高频了么&#xff1f;我面试别人问过挺多次&#xff0c;我也被面试官问过... 1、前后端bug有各自的一些特点&#xff1a; 前端bug特性&#xff1a;界面相关&#xff0c;布局相关&#xff0c;兼容性相关&#xff0c;交互相关。后端bug特性&#…

Django模型继承之多表继承

在Django模型继承中&#xff0c;支持的第二种模型继承方式是层次结构中的每个模型都是一个单独的模型。每个模型都指向分离的数据表&#xff0c;并且可以被独立查询和创建。在继承关系中&#xff0c;子类和父类之间通过一个自动创建的OneToOneField进行连接。示例代码如下&…

数据可视化-ECharts Html项目实战(14)

在之前的文章中&#xff0c;我们深入学习ECharts鼠标左键触发。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢谢。 数据可视化-ECharts Html项目实战&#xff08;…

MCU功耗测量

功耗测量 一、相关概念二、功耗的需求三、测量仪器仪表测量连接SMU功能SMU性能指标 四、功耗测量注意点板子部分存在功耗MCU方面&#xff0c;可能存在干扰项仪器仪表方面 一、相关概念 静态功耗和动态功耗&#xff1a;动态功耗为运行功耗&#xff0c;功耗测量注重每MHz下的功耗…

在mac上安装node.js及使用npm,yarn相关命令教程

1、安装node.js 官网&#xff1a;Node.js — Download Node.js 选择需要的版本&#xff0c;点击DownLoad 2、点击继续&#xff0c;直到安装成功。 2.1打开终端输入命令node -v 显示版本号则说明已安装成功 3、全局安装yarn命令 1、sudo npm install --global yarn &#xf…