NLP入门——天池新闻文本分类(3)基于机器学习的文本分类

基于机器学习的文本分类

这一次任务中会使用机器学习的模型来进行文本分类。机器学习的模型十分丰富,并且包括很多个分支。本次将使用一些传统机器学习进行文本分类。

学习目标

  1. 学会TF-IDF的原理和使用
  2. 使用sklearn的机器学习模型来进行文本分类

机器学习模型

机器学习中的分类模型有很多种,常见的分类器有K近邻决策树随机森林支撑向量机朴素贝叶斯逻辑回归等等,本章中我们会用到RidgeClassifier

文本表示方法

机器学习算法的训练过程中,如果给定N个样本,每个样本有M个特征,这样就组成了N*M的样本矩阵然后完成算法的训练和预测。同样的在计算机视觉中会将图片像素看作特征,每张图就相当于hight * width * 3的特征图,一个三维矩阵。
但是由于在自然语言领域中,文本长度通常是不定的。将文本表示为计算机可以运算的数字或向量特征的方法称为词嵌入(Word Embedding)方法。词嵌入会将不定长文本转换到定长特征空间中,是文本分类的第一步。

One-hot编码

One-hot编码将句子中每个单词用一个离散向量表示。具体的是将所有句子中出现的单词/词编码一个索引,然后根据索引进行赋值。

句子1: 我 爱 北 京 天 安 门
句子2: 我 喜 欢 上 海

先根据所有句子的字确定索引:

{
   
	'我': 1, '爱': 2, '北': 3, '京': 4, '天': 5,
	'安': 6, '门': 7, '喜': 8, '欢': 9, '上': 10, '海': 11
}

一共包括11个字,因此每个字都转换成了一个11维度的稀疏向量:

我:[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
爱:[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
...
海:[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]

Bag of Words

Bag of Words(词袋表示),也称为Count Vectors,每个文档的字/词可以使用他出现的次数进行表示。
如上述两个句子直接统计每个字出现次数,并将每个句子对应索引位置处赋值为词频:

句子1:我 爱 北 京 天 安 门
转换为 [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0]
句子2:我 喜 欢 上 海
转换为 [1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1]

可以使用sklearn中的CountVectorizer来实现这一个转换:

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()
vectorizer.fit_transform(corpus).toarray()
# 输出
array([[0, 1, 1, 1, 0, 0, 1, 0, 1],
       [0, 2, 0, 1, 0, 1, 1, 0, 1],
       [1, 0, 0, 1, 1, 0, 1, 1, 1],
       [0, 1, 1, 1, 0, 0, 1, 0, 1]], dtype=int64)

N-gram

N-gram也是统计单词词频,但是在语料库中加入了相邻单词组成的词语。如当N取值为2时,上述句子1和句子2就变为:

句句⼦子1:我爱 爱北 北京 京天 天安 安门
句句⼦子2:我喜 喜欢 欢上 上海

TF-IDF

TF-IDF分数是由两部分组成:第一部分是词语频率(Term Frequency),第二部分是逆文档频率(Inverse Document Frequency)。
字词的重要性会随着他在文件中出现次数成正比增加,但是会随着他在语料库中出现的频率中出现的频率成反比下降。

  1. TF
    TF表示关键字在文档中出现的频率。 t f i j tf_{ij} t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值