文本向量处理

2020/04/04
文章[1]中对文本处理中的核心进行了说明:

  1. 怎么表示单词、句子
  2. 怎么表示单词或者句子中的语义信息
  3. 怎么衡量单词之间、句子之间的相似度。
    (上面这几点真的跟我现在研究的这个东西,我所要追求的东西,非常相似)
    文中提到了两种模型,词袋模型,也就是我之前在webshell检测中所使用的方式,但是他的使用方式更像是one-hot方式,就是只有是否出现,并没有具体的频率。可能是因为使用的范例问题。词袋模型的缺点包括1)不能计算词之间的相似度,他举出的范例是one-hot编码方式,感觉如果是词频的话,句子的相似度应该会高,跟我之前看的那本《海量数据挖掘》中提到的信息有关。
    2)利用词袋模型中会产生非常巨大的向量,但是这种向量的内容是非常稀疏的。
    词向量模型,这种模型把每个词都化为一个向量,这样就可以进行相似度的比较。同时维度可控。
    总结:文章[1]中说的是词袋模型,具体实现是one-hot形式;然后包括了词向量。

文章[2]中对这个定义就更具体,他的语言中说法是,对于文本向量化有三种方式,包括one-hot、词袋模型、TF-IDF。所以他的定义方式跟[1]中的不一样。
文章[3]中的说法更准确, 就是说词袋模型就是你把句子拆开,然后可以利用one-hot,或者词频,甚至是tf-idf来表示,而不是[2]中的将one-hot和词袋模型分开。
文章[4]中的说法验证我的的想法,one-hot只是词袋模型的一种说法。
关于具体的词向量内容,他们都没有具体说明,但是从[1]中的书说法,他就是将词转化为了一个向量。关于具体的实现,后面再来学习。


sklearn自带了相关的文本处理api[5],这里主要设计了使用词袋模型,还有tf-idf模型。这里的词袋模型会把这个词弄成频率的样子。
关于tf-idf的实现方式有两种,一种是词袋模型CountVectorizer之后,在利用TfidfTransformer 。或者,直接TfidfVectorizer。得到的结果是一样的。
[6]是对api的详解。

参考文献

[1]从词袋模型到词向量
[2]机器学习实践:中文文本预处理(one-hot/词袋模型/TF-IDF)
[3]词袋模型和词向量模型的区别,词向量模型算不算的上文本表示模型?
[4]如何系统学习文本分类
[5]文本数据预处理:sklearn 中 CountVectorizer、TfidfTransformer 和 TfidfVectorizer
[6]sklearn——CountVectorizer详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值