自然语言处理(NLP)之一:文本预处理(文本准备)

您所在的位置:网站首页 数据预处理不包括哪些内容 自然语言处理(NLP)之一:文本预处理(文本准备)

自然语言处理(NLP)之一:文本预处理(文本准备)

2024-07-15 12:38| 来源: 网络整理| 查看: 265

1. 文本预处理概述

和机器学习任务一样,自然语言处理任务的第一步工作也是文本(数据)准备或叫文本(数据)预处理。文本预处理的流程如下图所示: 在这里插入图片描述 文本预处理工作以分词步骤为界,之前的文本标准化和文本清洗是语料级(篇章级)颗粒度文本处理,之后词的清洗、标准化和文本表示是单词级颗粒度文本处理。

语料级文本处理的作用对象是数据集中的每一篇语料,它比单词级文本处理效率更高,并且可以提前去除影响分词效果的障碍(如:英文中按空格分词,但与单词直接相邻的逗号等标点会产生非标准单词的分词结果(‘word,’ 标准形式应该是’word’))。

单词级文本处理执行在语料分词之后,它的处理对象是每篇语料中的每一个单词,主要执行单词的过滤、单词写法的标准化(如大写数字与阿拉伯数字书写形式的统一、统一英文单词不同时态、语态书写形式的统一等)、拼写纠错和文本表示四大步工作。

2. 文本标准化 2.1 字符编码标准化(全角英文字符转半角)

在计算机中,所有中文字符都是全角字符,而英文字母、阿拉伯数字及符号有全角和半角两种unicode编码方式。它们的全角字符unicode编码从65281~65374 (十六进制 0xFF01 ~ 0xFF5E),半角字符unicode编码从33~126 (十六进制 0x21~ 0x7E);而空格符比较特殊,全角unicode编码为12288 (0x3000),半角为32 (0x20)。

可见除空格符外,每个全角字符的unicode编码等于其半角字符的unicode编码加65248,因此字符unicode编码标准化实现代码如下:

#全角转半角 def full_to_half(text:str): #输入为一个句子 _text = "" for char in text: inside_code = ord(char)#以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值 if inside_code == 12288: #全角空格直接转换 inside_code = 32 elif 65281


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3