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]]

其中,每一行表示一个文本的向量化结果,每一列表示一个单词,对应的值表示该单词在该文本中出现的次数。

通过以上步骤,我们就可以将文本数据转换为机器可理解的数值向量,为后续的机器学习任务打下基础。

Python 文本预处理:分词、停用词处理、One-hot 向量化

原文地址: https://www.cveoy.top/t/topic/ocI0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录