NLP文本表示方法

文本表示方法

文本表示是自然语言处理(NLP)中的基础任务,它将非结构化的文本数据转化为计算机可以处理的数值形式。

本文将系统介绍 NLP 中常用的文本表示方法,从传统方法到现代深度学习技术,帮助读者全面理解这一核心概念。

传统文本表示

词袋模型(Bag of Words)

词袋模型是最简单的文本表示方法之一,它将文本视为一个无序的词汇集合。

基本概念

  • 忽略词语顺序和语法,只关注词语是否出现
  • 构建词汇表,统计每个词在文档中出现的次数
  • 最终表示为一个高维稀疏向量

代码示例

实例
from sklearn.feature_extraction.text import CountVectorizer

corpus = [
'This is the first document.',
'This document is the second document.',
'And this is the third one.',
'Is this the first document?'
]

vectorizer = CountVectorizer()
X = vectorizer.fit_transform(corpus)
print(vectorizer.get_feature_names_out())
print(X.toarray())

优缺点分析

✅ 优点:

  • 实现简单,计算效率高
  • 适用于小规模数据集和简单任务

❌ 缺点:

  • 忽略词序和语义信息
  • 高维稀疏性问题
  • 无法处理同义词和多义词

TF-IDF

TF-IDF(Term Frequency-Inverse Document Frequency)是对词袋模型的改进,考虑了词语在整个语料库中的重要性。

计算公式

  • TF(词频):词在文档中出现的次数 / 文档总词数
  • IDF(逆文档频率):log(文档总数 / 包含该词的文档数)
  • TF-IDF = TF × IDF

代码实现

实例
from sklearn.feature_extraction.text import TfidfVectorizer

tfidf_vectorizer = TfidfVectorizer()
X_tfidf = tfidf_vectorizer.fit_transform(corpus)
print(tfidf_vectorizer.get_feature_names_out())
print(X_tfidf.toarray())</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋进学堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值