🎨开发平台:jupyter lab
🎄运行环境:python3、TensorFlow2.x
word embedding(词嵌入),常用来进行情感分析、同义词聚类、文章分类和打标签。
(1)该部分内容介绍:通过多种计算word embedding的方法循序渐进的了解如何获取对应的word embedding,之后通过实战使用word embedding进行文本分类。
(2)该章节将分为四个部分,分别为:
- 1.文本数据处理
- 2.更多的word embedding方法—fastText和预训练词向量
- 3.针对文本的卷积神经网络模型 — 字符卷积
- 4.针对文本的卷积神经网络模型 — 词卷积
- 5.使用卷积对文本分类的补充内容
优点:相对于传统的word2vec计算方法,fastText计算更快速和更新的一种word embedding方法
(1)fastText在保持高精度的情况下加快了训练速度和测试速度。
(2)fastText对word embedding的训练更加精准。
(3)fastText采用两个重要的算法:N-gram、Hierarchical Softmax。
常用的方式:1-gram、2-gram、3-gram
(1)相对于word2vec中采用的CBOW架构,fastText采用的是N-gram架构。
(2)N理论上可以设置任意值,n为滑动窗口数,逐字向后移动。
(1)当预料类别较多时,使用Hierarchical Softmax(hs)减轻计算量。
(2)fastText中的Hierarchical Softmax利用Huffman树实现,将词向量作为叶子结点,之后根据词向量构建Huffman树。
from gensim.models import fastText
model = fastText(min_count = 5,size = 300,window = 7,workers = 10,iter = 50,seed = 17,sg = 1,hs = 1)
** 参数介绍
(1)size(int,optional):word向量的维度
(2)window(int,optional):一个句子中当前单词和被预测单词的最大距离。
(3)min_count(int,optional):忽略词频小于此值的单词。
(4)workers(int,optional):训练模型时使用的线程数。
(5)sg({0,1},optional):模型的训练算法,1代表skip-gram,0代表CBOW。
(6)hs({0,1},optional):1采用hierarchical Softmax训练模型,0代表负采样。
(7)iter:模型迭代的次数。
(8)seed(int,optional):随机数发生器种子。
对于个人用户或者规模不大的公司来说,做一个庞大的预训练项目是一个费时费力的工程。因此,我们可以借助一些其他工具。
-在中文部分,腾讯的词向量是一款较为常用并且免费的词嵌入预训练数据。
链接地址: https://ai.tencet.com/ailab/nlp/embedding/.html
from gensim.modelsword2vec import KetedVectors
wv_from_text = KetedVectors.load_word2vec_format(file,binary=False)