NLP学记笔记2

文本张量的表示:

文本张量的作用:将文本表示成张量(矩阵)形式

文本张量表示的方法:

1.one-hot编码    独热编码,每个词为n个元素的向量,其中只有一个元素为1

2.word2vec

3.word embedding

 

#导入用于对象保存和加载的包

from sklearn.externals import joblib

#导入keras中的词汇映射器Tokenizer

from keras.preprocessing.text import Tokenizer

#初始化一个词汇表

covab={"张三","李四"}

#实例化一个词汇映射器

t = Tokenizer(num_words=None,char_level=False)

#在映射器上拟合现有词汇表

t.fit_on_texts(vicab)

#循环遍历词汇表 将每一个单词映射为one-hot

for token in vocab:

  #初始化一个全零向量  

  zero_list = [0]*len(vocab)

  #使用映射器转换文本数据,每个词对应从1开始

  token_index=t.texts_to_sequences([token])[0][0] -1

  #将对应的位置赋值为1

  zero_list[token_index]=1

 

tokenize_path="path"

joblib.dump(t,tokenize_path)

 

word2vec!

 word2vec包含CBOW和skipgram二种训练模式

使用fasttext工具实现word2vec的训练和使用

1.获取训练数据

2训练词向量

3模型超参数的设定

4模型效果检验

5模型的保存和重加载{

model.save_model("fil9.bin")

#使用fasttext.load_model加载模型

model = fasttext.load_model("fil9.bin)

model.get_word_vector("the") #查看模型张量

}

 

word embedding!

word embedding是指通过一定的方法将词汇映射到指定维度的空间

广义word embedding包括所有密级词汇向量的表达方式。比如word2vec

狭义的word embedding是指在神经网络中假如word embedding层,对整个网络进行训练的同时产生embedding矩阵

 

上一篇:PyTorch 词向量(Word Embedding)


下一篇:第五周.01.PinSage论文带读