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

embedded/2024/10/18 6:02:46/

项目要求:

通过下载引擎(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/embedded/21260.html

相关文章

Spring Security(学习笔记) --Json登录的两种方式!

重点标识 Json登录。 Security默认是key-value的形式的。 前后端分离,Json处理比较方便。 Security默认是通过request.getpartmater这种方式获取,所以不支持。 自定义登录接口(方法一) 上一篇已经说过了,Spring容…

23种设计模式之建造者模式

如何用建造者模式打造出独一无二的复杂对象 一、什么是建造者模式?1.1 建造者模式的定义1.2 建造者模式的优点1.3 建造者模式的缺点 二、 建造者模式的结构三、建造者模式的实现3.1 定义产品3.2 定义抽象建造者3.3 实现具体建造者类3.4 定义导演类3.5 定义Client &a…

STL——List常用接口模拟实现及其使用

认识list list的介绍 list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素…

水库大坝安全白蚁监测系统解决方案

一、系统背景 白蚁作为河岸生态系统中的重要病害,不仅会导致水库大坝外部环境发生改变,甚至会引发水库大坝破坏,进而导致自身结构失去稳定性,严重影响水库大坝的正常运行。因此,治理水库大坝白蚁是确保水库大坝工程顺利…

达梦(DM)数据库存储加密

达梦DM数据库存储加密 非透明加密CFALGORITHMSENCRYPTCFALGORITHMSDECRYPTSF_ENCRYPT_BINARYSF_DECRYPT_TO_BINARYSF_ENCRYPT_CHARSF_DECRYPT_TO_CHARSF_ENCRYPT_DATESF_DECRYPT_TO_DATESF_ENCRYPT_DATETIMESF_DECRYPT_TO_DATETIMESF_ENCRYPT_DECSF_DECRYPT_TO_DECSF_ENCRYPT_T…

新装电脑Flutter环境部署坑汇总(持续更新)

1.本地安装,安装fvm的坑 本人电脑使用windows ,安装fvm则一般使用choco安装,那么首先需要安装choco,打开powershell/或者cmd运行以下命令: Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager…

Hive判空函数 COALESCE 和 NVL 使用示例

Hive判空函数 COALESCE 和 NVL 使用示例 1. 在Hive中, COALESCE 和 NVL 函数都是用于处理NULL值的函数,以下是它们的用途总结: COALESCE: COALESCE 函数用于返回参数列表中第一个非NULL的数值或表达式。语法: COALESC…

浅识数据结构之时间复杂度

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。 P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。 文章目录 前言一. 时间复杂度1.1 时间复杂度的概念1.2 时间复杂度如何计算1.3 时间复杂度如何表…