如何创建单词向量?我使用一个热键来创建单词向量,但它非常庞大,并不适用于类似的语义单词.所以我听说过使用神经网络发现单词相似性和单词向量的单词向量.所以我想知道如何生成这个向量(算法)或好材料来开始创建单词向量?
我已经下载了1000亿字谷歌新闻预训练矢量文件.最重要的是,我也在训练自己的3gb数据,生成另一个预训练的矢量文件.两者都有300个特征尺寸和超过1GB的尺寸.
我如何合并这两个巨大的预训练载体?或者我如何训练新模型并在另一个模型之上更新矢量?我看到基于C的word2vec不支持批量训练.
我希望从这两个模型中计算出类比.我相信从这两个来源学到的载体将产生相当好的结果.
我试图将预训练的word2vec向量注入现有的tensorflow seq2seq模型.
根据这个答案,我制作了以下代码.但它似乎并没有改善性能,尽管变量中的值已更新.
根据我的理解,错误可能是因为EmbeddingWrapper或embedding_attention_decoder创建了独立于词汇表顺序的嵌入?
将预训练矢量加载到张量流模型中的最佳方法是什么?
SOURCE_EMBEDDING_KEY = "embedding_attention_seq2seq/RNN/EmbeddingWrapper/embedding"
TARGET_EMBEDDING_KEY = "embedding_attention_seq2seq/embedding_attention_decoder/embedding"
def inject_pretrained_word2vec(session, word2vec_path, input_size, dict_dir, source_vocab_size, target_vocab_size):
word2vec_model = word2vec.load(word2vec_path, encoding="latin-1")
print("w2v model created!")
session.run(tf.initialize_all_variables())
assign_w2v_pretrained_vectors(session, word2vec_model, SOURCE_EMBEDDING_KEY, source_vocab_path, source_vocab_size)
assign_w2v_pretrained_vectors(session, word2vec_model, TARGET_EMBEDDING_KEY, target_vocab_path, target_vocab_size)
def assign_w2v_pretrained_vectors(session, word2vec_model, embedding_key, vocab_path, vocab_size):
vectors_variable = [v for v in tf.trainable_variables() if embedding_key in v.name]
if len(vectors_variable) != 1:
print("Word vector variable not found or too many. key: " + embedding_key)
print("Existing embedding trainable variables:")
print([v.name for v in tf.trainable_variables() …Run Code Online (Sandbox Code Playgroud) 是否有任何带有t-SNE算法并行版本的Python库?或者存在多核/并行t-SNE算法?
我正在尝试使用t-SNE减少词汇表中所有word2vecs的维度(300d - > 2d).
问题:词汇量的大小约为130000,并且为它们进行t-SNE需要很长时间.
python parallel-processing multiprocessing dimensionality-reduction word2vec
我有一个Word2Vec受过训练的模型Gensim.我如何使用它Tensorflow的Word Embeddings.我不想在Tensorflow中从头开始训练嵌入.有人可以告诉我如何使用一些示例代码吗?
我想用word2vec和PySpark来处理一些数据.我以前在Python中使用Google训练模型GoogleNews-vectors-negative300.bin和gensim.
有没有办法用Mllib/word2vec加载这个bin文件?或者将数据作为字典从Python {word:[vector]}(或.csv文件)导出然后将其加载到PySpark中是否有意义?
谢谢
我重新安装了gensim pkg和Cython,但它一直显示这个警告,有人知道吗?我使用的是Python 3.6,PyCharm Linux Mint.
UserWarning:没有为Word2Vec加载C扩展,训练会很慢.安装C编译器并重新安装gensim以进行快速培训.warnings.warn("没有为Word2Vec加载C扩展,训练会很慢."
当我创建或加载模型时,它也会显示此行.
正在使用慢速版本的gensim.models.doc2vec
我正在fastText使用gensim.models.fasttext. 但是,我似乎找不到一种方法来计算迭代损失以进行记录。如果我查看gensim.models.word2vec,它具有get_latest_training_loss允许您打印训练损失的方法。有没有其他选择,或者根本不可能?
嗨,有我自己的语料库,我在上面训练了几个 Word2Vec 模型。对他们进行相互评估并选择最好的一种的最佳方法是什么?(显然不是手动 - 我正在寻找各种措施)。
值得注意的是,嵌入是针对项目而不是单词,因此我不能使用任何现有的基准。
谢谢!
根据我在 stackoverflow 上找到的几篇文章(例如,为什么 word2Vec 使用余弦相似度?),通常的做法是在我们训练好 word2vec(CBOW 或 Skip-gram)模型后计算两个词向量之间的余弦相似度。然而,这对我来说似乎有点奇怪,因为该模型实际上是用点积作为相似性分数进行训练的。一个证据是我们训练后得到的词向量的范数实际上是有意义的。那么为什么人们在计算两个词之间的相似度时仍然使用余弦相似度而不是点积呢?
word2vec ×10
python ×7
gensim ×4
nlp ×4
tensorflow ×2
dot-product ×1
embedding ×1
fasttext ×1
load ×1
pyspark ×1
python-3.x ×1