Python 文本预处理:分词、停用词处理、One-hot 向量化
Python 文本预处理:分词、停用词处理、One-hot 向量化
文本预处理是自然语言处理中必不可少的步骤,它可以将文本数据转换为机器可以理解的形式。本文将介绍使用 Python 进行文本预处理的基本步骤,包括分词、停用词处理和 One-hot 向量化。
1. 文本分词
文本分词是指将一段文本拆分成词语或字符的列表。在 Python 中,可以使用 jieba 库进行中文分词。
import jieba
text = '今天天气真好,适合出门散步。'
seg_list = jieba.cut(text) # 精确模式分词
print(' '.join(seg_list)) # 输出分词结果,用空格分隔
2. 停用词处理
停用词是指在文本中出现频率很高,但对语义理解没有帮助的词语,例如“的”、“了”、“是”等。去除停用词可以提高文本的质量,减少噪声。
stopwords = [',', '。', '!', '?', '的', '了', '是', '我', '你', '他', '她'] # 定义停用词列表
text = '今天天气真好,适合出门散步。'
seg_list = jieba.cut(text) # 精确模式分词
result = [] # 保存结果
for word in seg_list:
if word not in stopwords: # 如果不是停用词
result.append(word) # 保存到结果列表中
print(' '.join(result)) # 输出结果,用空格分隔
3. 文本向量化
文本向量化是指将文本转换为数值向量,以便机器可以进行处理。One-hot 向量化是一种常用的文本向量化方法,它将每个词语表示为一个长度为词汇表大小的向量,向量中只有一个元素为 1,其余元素为 0。
from sklearn.feature_extraction.text import CountVectorizer
texts = ['今天天气真好,适合出门散步。',
'明天可能会下雨,最好待在家里。',
'今天上班很忙,没有时间休息。']
# 创建CountVectorizer对象,用于将文本向量化
vectorizer = CountVectorizer()
# 对texts进行向量化
X = vectorizer.fit_transform(texts)
# 将向量化结果转换为数组并输出
print(X.toarray())
输出结果为:
[[0 1 0 1 1 1 0 1 0 0 1 0]
[1 0 1 0 0 0 1 0 1 1 0 1]
[0 0 0 0 1 0 1 0 0 0 0 0]]
其中,每一行表示一个文本的向量化结果,每一列表示一个单词,对应的值表示该单词在该文本中出现的次数。
通过以上步骤,我们就可以将文本数据转换为机器可理解的数值向量,为后续的机器学习任务打下基础。
原文地址: https://www.cveoy.top/t/topic/ocI0 著作权归作者所有。请勿转载和采集!