(NLP)文本预处理

文本预处理的基本步骤包括以下几个:

  1. 将文本作为字符串加载到内存中。
  2. 将字符串拆分为词元(如单词和字符)。
  3. 建立一个词表,将拆分的词元映射到数字索引。
  4. 将文本转换为数字索引序列,方便模型操作。

读取文本数据集

以今日头条中文新闻(短文本)分类数据集为例。其包含38万条短新闻,包含于15个类中。
头条新闻数据集下载

数据格式如下所示:

6551700932705387022_!_101_!_news_culture_!_京城最值得你来场文化之旅的博物馆_!_保利集团,马未都,中国科学技术馆,博物馆,新中国  

每行为一条数据,以_!_分割的个字段,从前往后分别是 新闻ID,分类code(见下文),分类名称(见下文),新闻字符串(仅含标题),新闻关键词。

下面读取数据,并且切除ID,分类code,分类名称,新闻关键字,只保留标题文本。

# 导入包
import re

# 定义要去掉的标点
punc = '[~`!#$%^&*()_+-=|\';":/.,?><~·!@#¥%……&*()——+-=“:’;、。,?》《{}]'

with open('toutiao_cat_data.txt', 'r', encoding='utf') as f:
    lines = f.readlines()
    for i in range(len(line
### 自然语言处理中的文本预处理技术 #### 文本清理 文本清理涉及去除不需要的信息,使数据集更干净。这通常包括移除HTML标签、特殊字符以及多余的空白等操作[^1]。 #### 分词(Tokenization) 分词是指将字符串分割成单词或标记的过程。这是NLP任务的一个重要步骤,因为后续大多数分析都是基于这些单独的单元来进行的。例如,在Python中可以利用`nltk.word_tokenize()`来实现这一功能[^5]。 ```python from nltk.tokenize import word_tokenize text = "Natural language processing is fun!" tokens = word_tokenize(text) print(tokens) ``` #### 转换为小写(Lowercasing) 为了减少词汇表大小并提高模型性能,一般会把所有的字母都转换成小写字母形式。这样做能够确保相同意义的不同大小写的词语被当作同一个特征对待。 #### 去停用词(Removing Stop Words) 停用词指的是那些频繁出现在文本里但是对理解语义帮助不大的常见词汇,比如“the”,“is”。通过过滤掉它们可以让算法更加专注于有意义的内容上。 ```python from nltk.corpus import stopwords stop_words = set(stopwords.words('english')) filtered_sentence = [w for w in tokens if not w.lower() in stop_words] print(filtered_sentence) ``` #### 词形还原(Stemming & Lemmatization) 这两个过程旨在简化词汇形态变化的影响。词干提取(stemming)是简单粗暴地截取词根;而词类化(lemmatization)则试图找到最基础的形式——即原型。 ```python from nltk.stem import WordNetLemmatizer lemmatizer = WordNetLemmatizer() lemma_list = [lemmatizer.lemmatize(word) for word in filtered_sentence] print(lemma_list) ``` #### 部件标注(Part-of-Speech Tagging) 部件标注是对句子中的每一个词赋予其语法角色的任务。这对于解析句法结构至关重要,并有助于提升其他下游应用的效果,如情感分析等[^3]。 ```python import nltk pos_tags = nltk.pos_tag(lemma_list) print(pos_tags) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值