4-1 文本预处理:分词、停用词、特殊字符消失术

4-1 文本预处理:分词、停用词、特殊字符消失术

在自然语言处理(NLP)领域,文本预处理是不可或缺的一步。有效的文本预处理能够显著提高模型的性能和准确性。本文将详细介绍文本预处理中的三个重要步骤:分词、停用词处理和特殊字符消除。通过丰富的理论解释和Python代码示例,希望能够帮助读者更好地理解并应用这些技术。

一、分词

1.1 什么是分词

分词是将连续的文本序列切分成词语序列的过程。在中文中,分词尤为重要,因为中文文本中没有明确的词边界,而大多数自然语言处理模型和算法都依赖于词语作为基本单元。

1.2 分词的重要性

分词是自然语言处理的基础,对下游任务如文本分类、信息检索、机器翻译等都有重要影响。准确的分词能够提高词向量表示的质量,进而提升模型的性能。

1.3 分词的方法

1.3.1 基于规则的方法

基于规则的方法主要依赖于预先构建的词典和规则。这种方法简单易行,但容易受到词典的覆盖范围和规则制定的影响。

import jieba

text = "我爱自然语言处理"
seg_list = jieba.cut(text, cut_all=False)
print("精确模式: ", "/ ".join(seg_list))

在这里插入图片描述

1.3.2 基于统计的方法

基于统计的方法通过统计词频、共现频率等信息来确定分词结果。这种方法能够动态适应不同的文本,但需要大量的计算资源。

import jieba.analyse

text = "自然语言处理是计算机科学领域与人工智能领域中的一个重要方向"
keywords = jieba.analyse.extract_tags(text, topK=5, withWeight=False)
print("关键词: ", "/ ".join(keywords))

在这里插入图片描述

1.3.3 基于深度学习的方法

近年来,基于深度学习的分词方法得到了广泛关注。这些方法能够自动学习文本特征,具有较高的准确性。其中BERT 分词器通常会将句子拆分成字或子词(subwords),而不是整个词。所以会出现如图的现象。

from transformers import BertTokenizer

tokenizer = BertTokenizer.from_pretrained('bert-base-chinese')
tokens = tokenizer.tokenize("自然语言处理是计算机科学领域与人工智能领域中的一个重要方向")
print("BERT分词: ", tokens)

在这里插入图片描述

二、停用词处理

2.1 什么是停用词

停用词(Stop Words)是指在文本处理中被过滤掉的高频、低信息量的词语。例如中文中的“的”、“是”、“在”等。

2.2 停用词处理的重要性

停用词处理能够减少噪声,提高文本表示的质量,从而提升模型的性能。停用词处理在信息检索、文本分类等任务中尤为重要。

2.3 停用词的选择

停用词的选择可以根据具体任务和语料库进行调整。一般来说,停用词表可以通过经验规则或数据驱动的方法构建。

2.3.1 经验规则构建停用词表
import jieba

# 定义停用词列表
stop_words = set(["的", "是", "在", "和", "了"])

# 原始文本
text = "自然语言处理是计算机科学领域与人工智能领域中的一个重要方向"

# 用 jieba 分词
words = jieba.lcut(text)

# 去除停用词
filtered_words = [word for word in words if word not in stop_words]

# 将处理后的词语重新连接成字符串
filtered_text = " ".join(filtered_words)

print("去除停用词后: ", filtered_text)

在这里插入图片描述

2.3.2 数据驱动构建停用词表
from collections import Counter
import jieba

text = "自然语言处理包括语音识别、机器翻译、情感分析等多个子领域。"
words = jieba.lcut(text)
word_counts = Counter(words)
stop_words = {word for word, count in word_counts.items() if count > 1}

print("自动生成的停用词表: ", stop_words)

在这里插入图片描述

三、特殊字符消除

3.1 什么是特殊字符

特殊字符包括标点符号、数字、HTML标签等非文字字符。在文本处理中,特殊字符通常被视为噪声,需要被消除或替换。

3.2 特殊字符消除的重要性

特殊字符的存在可能会干扰文本分析和模型训练。通过消除特殊字符,可以提高文本的清洁度和模型的鲁棒性。

3.3 特殊字符的处理方法

3.3.1 去除标点符号
import re

text = "自然语言处理(NLP)是计算机科学中的一个重要方向!"
cleaned_text = re.sub(r'[^\w\s]', '', text)
print("去除标点符号后: ", cleaned_text)

在这里插入图片描述

3.3.2 去除数字
text = "他在2023年获得了博士学位,并在AI领域发表了50篇论文。"
cleaned_text = re.sub(r'\d+', '', text)
print("去除数字后: ", cleaned_text)

在这里插入图片描述

3.3.3 去除HTML标签
from bs4 import BeautifulSoup

html = "<html><body><p>自然语言处理是计算机科学中的一个重要方向。</p></body></html>"
soup = BeautifulSoup(html, "html.parser")
cleaned_text = soup.get_text()
print("去除HTML标签后: ", cleaned_text)

在这里插入图片描述

四、综合实例

为了更好地展示分词、停用词处理和特殊字符消除的综合效果,下面提供一个完整的Python代码实例,演示如何对文本进行预处理。

import jieba
import re
from bs4 import BeautifulSoup

def preprocess_text(text):
    # 去除HTML标签
    text = BeautifulSoup(text, "html.parser").get_text()
    
    # 去除标点符号
    text = re.sub(r'[^\w\s]', '', text)
    
    # 去除数字
    text = re.sub(r'\d+', '', text)
    
    # 分词
    words = jieba.lcut(text)
    
    # 去除停用词
    stop_words = set(["的", "是", "在", "和", "了"])
    words = [word for word in words if word not in stop_words]
    
    return words

text = "<html><body><p>自然语言处理是计算机科学中的一个重要方向。</p></body></html>"
processed_text = preprocess_text(text)
print("预处理后的文本: ", processed_text)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/789895.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NPDP含金量高吗?什么人适合学习NPDP?

PMP考完了&#xff0c;最近在考NPDP&#xff0c;这也是一个有意思的证书&#xff0c;含金量还不错&#xff0c;非常适合想转型和升级的人来考。 一、NPDP是什么 NPDP其实就是产品经理国际资格认证&#xff08;New Product Development Professional&#xff09;&#xff0c;是…

怎么提高音频声音大小?提高音频声音大小的四种方法

怎么提高音频声音大小&#xff1f;在音频处理和编辑中&#xff0c;增加声音的音量是一个常见的需求&#xff0c;尤其是在确保音频清晰度和听觉效果的同时。调整音频的音量不仅仅是简单地提高音频的响度&#xff0c;它也涉及到如何保持音质的高标准&#xff0c;确保没有失真或削…

视频调色的技巧和方法 视频调色的操作步骤 视频调色用什么软件好免费 会声会影下载免费中文版

学会视频调色&#xff0c;就等于掌握了剪辑艺术的密码。视频调色不是为了画面好看&#xff0c;而是通过精心构思的色彩参数&#xff0c;向观众传达作品的情绪和内涵。普通剪辑师与剪辑高手之间的差距&#xff0c;就在于能否领悟视频调色的真谛。 一、视频调色有什么用 掌握混…

Pandas基础03:数据排序与增删

上一节我们介绍了通过按行索引和按列索引找出相关数据的方法。本章节将进一步介绍如何筛选数据&#xff0c;并对数据进行排序、增删的方法。 示例表格和上一节相同。 1.数据筛选 Python中可以通过区域筛选&#xff0c;即获取某几行某几列的方法得到数据。例如&#xff0c;我要…

伙伴活动|AI硬件大潮来袭,深圳的创客们在哪里?

「每一种硬件产品&#xff0c;都会被 GenAI 重新做一遍。」 分享一个社区伙伴「未来光锥」参与主办的活动。如果你同时对 AI 和硬件感兴趣&#xff0c;提到 maker 一词仍然会激动。推荐你参与这次活动。 AI 玩具Folotoy 的创始人、RTE 开发者社区成员王乐也将参与本次活动并分…

python怎么判断字符串以什么结尾

在python编辑器中新建一个data.py。 写上自己的注释。 然后新建一个变量testname。 利用endswith来判断字符串是不是以“ar”结尾。 将结果打印出来。 选择“run”->“run”。 运行该程序&#xff0c;如果是&#xff0c;就会返回true。

Xinstall揭秘:APP推广数据背后的真相,让你的营销更精准!

在这个移动互联网时代&#xff0c;APP如同雨后春笋般涌现&#xff0c;但如何在这片红海中脱颖而出&#xff0c;成为每一个开发者与运营者面临的共同难题。其中&#xff0c;APP推广统计作为衡量营销效果、优化推广策略的关键环节&#xff0c;更是不可忽视的一环。今天&#xff0…

【昇思25天学习打卡营打卡指南-第二十二天】GAN图像生成

GAN图像生成 模型简介 生成式对抗网络(Generative Adversarial Networks&#xff0c;GAN)是一种生成式机器学习模型&#xff0c;是近年来复杂分布上无监督学习最具前景的方法之一。 最初&#xff0c;GAN由Ian J. Goodfellow于2014年发明&#xff0c;并在论文Generative Adve…

机器学习和AI智能写作对未来文案编辑的影响

欢迎关注小知&#xff1a;知孤云出岫 目录 机器学习和AI智能写作对未来文案编辑的影响1. 简介2. AI智能写作工具的现状3. AI智能写作的优势3.1 提高效率3.2 降低成本3.3 数据驱动的个性化 4. AI智能写作的挑战4.1 创造力和独创性4.2 道德和伦理问题4.3 技术限制 5. 行业变化5.…

鸿蒙开发:每天一个小bug----鸿蒙开发路由跳转踩坑

一、前言 报错内容显示找不到页面 &#xff0c;肯定我们页面没写对呗&#xff01; 可能是这几个原因:1.main_pages.json没配置路由 {"src": ["pages/02/UserInfoClass","pages/02/AppStorageCase02"] } 2.跳转路径没写对 错误&#xff1a;…

首次使用DevEcoStudio

1、双击桌面快捷方式&#xff0c;进入首次运行的欢迎页面 由于咱们之前电脑上没有安装过此软件&#xff0c;所以直接保持默认选项不导入配置&#xff0c;然后点击&#x1f197; 2、进入到欢迎界面&#xff0c;勾选同意后点击Agree 3、进入到工具正式页面 4、点击右侧界面中的C…

【js】js高精度加减乘除函数

加法 /*** 高精度加法函数&#xff0c;处理字符串或数字输入&#xff0c;去除尾部多余的零* param {string|number} a - 被加数* param {string|number} b - 加数* returns {string} - 计算结果&#xff0c;去除尾部多余的零*/ export const add (a, b) > {// 将输入转换为…

AirPods Pro新功能前瞻:iOS 18的五大创新亮点

随着科技的不断进步&#xff0c;苹果公司一直在探索如何通过创新提升用户体验。iOS 18的推出&#xff0c;不仅仅是iPhone的一次系统更新&#xff0c;更是苹果生态链中重要一环——AirPods Pro的一次重大升级。 据悉&#xff0c;iOS 18将为AirPods Pro带来五项新功能&#xff0…

985研究生8年终毕业,学位证颁发11天后被作废?

“正常是学校颁证给学院&#xff0c;但学院就没告诉我&#xff0c;还把学校颁发的证书给撤销了&#xff0c;这中间学院并没有书面或电话告知我本人。”34岁读研&#xff0c;如今已42岁的内蒙古任女士回想起求学不易&#xff0c;很是心酸。 2015年3月&#xff0c;任女士考取2015…

昇思25天学习打卡营第12天|Vision Transformer图像分类

关于Vision Transformer Vision Transformer&#xff08;ViT&#xff09;结构和工作原理 ViT模型的主体结构是基于Transformer模型的Encoder部分 图像分块&#xff1a;ViT首先将输入图像分割成一系列固定大小的patch&#xff08;例如16x16像素&#xff09;。然后&#xff0c;…

【正点原子i.MX93开发板试用连载体验】简单的音频分类

本文最早发表于电子发烧友论坛&#xff1a; 今天测试的内容是进行简单的音频分类。我们要想进行语音控制&#xff0c;就需要构建和训练一个基本的自动语音识别 (ASR) 模型来识别不同的单词。如果想了解这方面的知识可以参考TensorFlow的官方文档&#xff1a;简单的音频识别&…

在2018.3没有找到对应的器件库,需要

图中的器件在vivado中没有找到 一、添加器件 发现所有的2018.3的所有器件库&#xff0c;其实都已经安装了&#xff0c;那么意味着2018.3没有办法对该器件进行综合。 二、安装更新版本的vivado 重新安装的2022.2&#xff0c;在选择器件的时候&#xff0c;把所有的器件全部勾选…

Quartus程序烧录

1. .sof文件烧录&#xff08;断电丢失&#xff09; &#xff08;1&#xff09;Programmer&#xff08;程序设计&#xff09; &#xff08;2&#xff09;Hardware Setup...&#xff08;硬件设置&#xff09; &#xff08;如无USB-Blaster[USB-0]&#xff0c;在Hardware Setup..…

TCP 握手数据流

这张图详细描述了 TCP 握手过程中&#xff0c;从客户端发送 SYN 包到服务器最终建立连接的整个数据流转过程&#xff0c;包括网卡、内核、进程中的各个环节。下面对每个步骤进行详细解释&#xff1a; 客户端到服务器的初始连接请求 客户端发送 SYN 包&#xff1a; 客户端发起…

wmv如何转为mp4格式?推荐几个将wmv转换成MP4的方法

wmv如何转为mp4格式&#xff1f;在当今数字化和多媒体内容分享的时代&#xff0c;视频格式的转换变得至关重要。wmv作为一种常见的视频格式&#xff0c;在Windows系统中有较好的兼容性&#xff0c;但实际上存在多项严重问题。更为不利的是&#xff0c;由于wmv属于比较新的视频类…