2020-06-03 nlp_02之文本向量化的几种方式:one-hot, 文本相似度(欧氏距离、余弦相似度), tf-idf

NLP的核心是了解文本的语义

one-hot (以下几种方式都属于one-hot的范畴)

通过构建词典的顺序,找出对应单词的位置,

词典:中文有20万-30万个常用词, rnn和lstm中,也有使用字符集的,常用字符大概5000个

例子

词典(只有7个单词,即7个维度):[今天, 天气, 不错, 挺,风和日丽,的, 明天]

每个单词的表示:

今天:[1, 0, 0, 0, 0, 0, 0]

不错:[0, 0, 1, 0, 0, 0, 0]

的:    [0, 0, 0, 0, 0, 1, 0]

句子的表示:两种方式:

1、boolean, 不管出现多少次,在相应位置都为1

2、count, 记录单词出现的频率

而一句话:今天 的 天气 不错 挺 风和日丽 的。用ont-hot表示的话就是:

1、boolean   [1, 1, 1, 1, 1, 1, 0]       2、count    [1, 1, 1, 1, 1, 2, 0]   

 

文本相似度

优缺点:多数使用count方法,但是count方法中,无关的词出现的频次会比较多,比如的,他,他们等。而比较重点的词可能为动词。 也就是说出现次数少的,并不代表它的贡献值就越小。 

1、欧式距离: d = |s1 -  s2|    d:距离    s1  s2 句子

通过boolean法或者count法获得句子向量后(s1和 s2的长度为词典的长度)

例:

s1 = [x1, x2, x3]              s2 = [y1, y2, y3]

d = |s1 -  s2|  = √(x1-y1)^2 + (x2-y2)^2 + (x3-y3)^2......

缺点:只有向量大小,没有方向。 值越小,相似度越大

2、余弦相似度: 即考虑向量的方向,又考虑向量的大小, 值越大,相似度越大,

方向和大小折中的一种方法,  值越大,相似度越大,

d = (s1 · s2) / ( |s1| * |s2|)             # (s1 · s2) 内积,考虑方向                   ( |s1| * |s2|)  考虑向量大小

例:

s1 = [x1, x2, x3]              s2 = [y1, y2, y3]

d =  x1y1 + x2yx + x3y3 / (√x1^2 + x2^2 + x3^2  * √y1^2 + y2^2  + y3^2)

问题 并不是出现的越多,就越重要; 并不是出现的越少,就越不重要

于是就引出来-- tf-idf

 

TF-IDF  逆文本序

公式: tf-idf(w) = tf(d, w) * idf(w)

tf(d, w) : 文档d中w的词频

idf(w) : log(N / N(w))   考虑单词的重要性   N:语料库中文档的总数,  N(w) : 词语w出现在多少个文档中

1、构建词典, 即所有文档中的分词后的总量total_words

2、通过 计算每篇文章的向量: 向量总长度为total_words, 每个位置的向量是tf-idf值, 即当前文章中该词出现的频率 * log(总文档数/ 有多少篇文章出现过该词语)          如:[1*log(100/5),1*log(100/3),2*log(100/50),1*log(100/100),  0, .....]

 

ont-hot的缺点:

1、one-hot 无法确定两个单词的语义相似度

2、ont-hot的稀疏性    由于中文词典过于庞大,可能有10^5 至10^6个,而一个文本只有寡寡几个单词的时候,矩阵就会变得非常的稀疏

 

如何评价两个单词之间的语义相似性?

1、欧式距离   都一致, 为根号2

2、余弦相似度, 都一直, 为0   

 

怎么解决? 

请见下篇文章,词向量~

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值