python文本向量化_text2vec, chinese text to vetor.(文本向量化表示工具,包括词向量化、句子向量化)...

text2vec是一个用于中文文本向量化表示的工具,支持词向量化和句子向量化。通过词嵌入的平均值计算文本相似度,并提供词移距离和BM25等方法进行文本相似度比较。实验证明,简单的词嵌入平均值方法在大多数情况下表现良好。此外,还提供了查询和文档的相似度比较功能。
摘要由CSDN通过智能技术生成

text2vec

text2vec, chinese text to vetor.(文本向量化表示工具,包括词向量化、句子向量化)

Feature

文本向量表示

字词粒度,通过腾讯AI Lab开源的大规模高质量中文词向量数据(800万中文词),获取字词的word2vec向量表示。

句子粒度,通过求句子中所有单词词嵌入的平均值计算得到。

篇章粒度,可以通过gensim库的doc2vec得到,应用较少,本项目不实现。

文本相似度计算

基准方法,估计两句子间语义相似度最简单的方法就是求句子中所有单词词嵌入的平均值,然后计算两句子词嵌入之间的余弦相似性。

词移距离(Word Mover’s Distance),词移距离使用两文本间的词嵌入,测量其中一文本中的单词在语义空间中移动到另一文本单词所需要的最短距离。

query和docs的相似度比较

rank_bm25方法,使用bm25的变种算法,对query和文档之间的相似度打分,得到docs的rank排序。

Result

文本相似度计算

基准方法

尽管文本相似度计算的基准方法很简洁,但用平均词嵌入之间求余弦相似度的表现非常好。实验有以下结论:

1. 简单word2vec嵌入比GloVe嵌入表现的好

2. 在用word2vec时,尚不清楚使用停用词表或TF-IDF加权是否更有帮助。在STS数据集上,有一点儿帮助;在SICK上没有帮助。

仅计算未加权的所有word2vec嵌入平均值表现得很好。

3. 在使用GloVe时,停用词列表对于达到好的效果非常重要。利用TF-IDF加权没有帮助。

词移距离

基于我们的结果,好像没有什么使用词移距离的必要了,因为上述方法表现得已经很好了。只有在STS-TEST数据集上,而且只有在有停止词列表的情况下,词移距离才能和简单基准方法一较高下。

Install

pip3 install text2vec

or

git clone https://github.com/shibing624/text2vec.git

cd text2vec

python3 setup.py install

Usage:

get text vector

import text2vec

char = '我'

result = text2vec.encode(char)

print(type(result))

print(char, result)

word = '如何'

print(word, text2vec.encode(word))

a = '如何更换花呗绑定银行卡'

emb = text2vec.encode(a)

print(a, emb)

output:

我 [ 0.09639428 -0.14142498 0.02505628 0.0041334 0.0891804 -0.06853037

0.02480385 -0.00202681 0.04466304 0.05935134 0.06626346 0.02792982

-0.00122364 -0.03564163 0.07814336 -0.01186718 -0.11831381 -0.11164719

-0.02129865 -0.07289924 0.04736083 0.03148666 0.0069021 0.06107369

0.05683238 0.03053819 -0.08670152 0.05620533 0.07051748 -0.05775733

-0.06013909 0.01728704 -0.09136213 0.06711558 -0.04173594 -0.02561434

0.05425368 0.03572141 -0.04812391

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值