文本张量的表示:
文本张量的作用:将文本表示成张量(矩阵)形式
文本张量表示的方法:
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矩阵