【NLP】文本分类

n-gram 的局限性

n-gram 只能对于填空这样的通顺性问题做出推测,但是没有办法完全解决句子的语义问题,从而无法实现文本的分类
文本的分类,就是将文本在语义的理解下划分到特定的主题下

手工规则

如一些垃圾过滤系统,需要人工制定规则
准确率往往很高,但是维护规则的成本很大

机器学习

本质上就是学习一个文档到文档类别的映射函数,需要人工分好类的文本作为训练数据,所以是有监督学习
分为学习器和分类器,学习器学习手工标注的数据集并输出训练好的分类器,分类器对于实际需要分类的文档进行分类,选择对应的文档类别进行输出

Step1 预处理

依据文本的具体形式来确定:

  1. 去除 HTML 标签
  2. Stop-words 停用词:高频的词如冠词,介词往往包含着较少的信息
  3. Word stemming 词干:词的后缀与变形处理,将具有相同词义的词进行合并

Step2 文本表示

什么是最好的文本表示方法?

最常用的一种文本表示方法:VSM

VSM(vector space model 向量空间模型)
将文本表示为由词条构成的向量,理论上假设词条之间互相独立,文本可以认为是一种词的集合(词袋)
e.g.在一段文章中按照词频统计出现最多的词,然后进行相关分类
建立文档词条矩阵 A = ( a i k ) A=(a_{ik}) A=(aik)
每个文档表示为由词构成的列向量
a i k a_{ik} aik表示词 k 在文档 i 中的权重
引入符号:
(1) f i k f_{ik} fik词条 k 在文档 i 中出现的次数
(2) n k n_{k} nk词条 k 在文档集合中出现的总次数
(3)N 文档集合包含的文档个数
(4)M 预处理后文档集合包括的词条个数

词的权重

布尔权重:如果词在文档中出现,权重为 1,否则为 0
词条频次权重:使用词条在文档中出现的次数作为权重
逆文档频次:考虑包含某词条的文档个数, α ∝ 1 n k \alpha \propto \frac{1}{n_k} αnk1
tf * idf 权重:同时考虑词条频次和逆文档频次, α i k = f i k log ⁡ ( N n k ) \alpha_{ik} = f_{ik}\log (\frac{N}{n_k}) αik=fiklog(nkN)
tfc 权重:在 tf-idf 基础上对文档长度进行正则化
α i k = f i k log ⁡ ( N n k ) ∑ j = 1 M [ f i j log ⁡ ( N n j ) ] 2 \alpha_{ik} = \frac{f_{ik}\log (\frac{N}{n_k})}{\sqrt{\sum\limits_{j=1}^M[f_{ij}\log (\frac{N}{n_j})]^2}} αik=j=1M[fijlog(njN)]2

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值