当我正在阅读Tomas Mikolov的一篇论文时:http://arxiv.org/pdf/1301.3781.pdf
我对"连续词袋模型"部分有一个担忧:
第一个提出的体系结构类似于前馈NNLM,其中去除了非线性隐藏层,并且所有单词(不仅仅是投影矩阵)共享投影层.因此,所有单词都被投射到相同的位置(它们的向量被平均).
我发现有些人提到Word2Vec模型中有一个隐藏层,但根据我的理解,该模型中只有一个投影层.此投影图层是否与隐藏图层完成相同的工作?
另一个问题是如何将输入数据投影到投影层?
"投影层是所有单词(不仅仅是投影矩阵)共享的",这意味着什么?
我正在尝试通过使用以下代码来实验gensim doc2vec.据我从教程中理解,它应该工作.但是它给出了AttributeError:'list'对象没有属性'words'.
from gensim.models.doc2vec import LabeledSentence, Doc2Vec
document = LabeledSentence(words=['some', 'words', 'here'], tags=['SENT_1'])
model = Doc2Vec(document, size = 100, window = 300, min_count = 10, workers=4)
Run Code Online (Sandbox Code Playgroud)
那我做错了什么?请帮忙.谢谢.我使用的是python 3.5和gensim 0.12.4
当我尝试从官方谷歌代码页下载Word2vec工具时,我得到以下内容:
svn checkout http://word2vec.googlecode.com/svn/trunk/
svn:E170013:无法连接到URL" http://word2vec.googlecode.com/svn/trunk " 的存储库
svn:E160013:找不到'/ svn/trunk'路径
读取tensorflow word2vec模型输出如何输出与特定单词相关的单词?
阅读src:https://github.com/tensorflow/tensorflow/blob/r0.11/tensorflow/examples/tutorials/word2vec/word2vec_basic.py可以查看图像的绘制方式.
但是,是否有一个数据结构(例如字典)作为训练模型的一部分而创建,允许访问最接近给定单词的最近n个单词?例如,如果word2vec生成图像:
image src:https://www.tensorflow.org/versions/r0.11/tutorials/word2vec/index.html
在这个图像中,单词'to,he,it'包含在同一个集群中,是否有一个函数将输入'输出'并输出'he,it'(在这种情况下n = 2)?
在题为" 机器学习极限 " 的论文中,Canny等.人.报告大量的word2vec处理速度改进.
我正在使用本文中使用的BIDMach库,并且找不到任何解释Word2Vec如何实现或如何在此框架中使用的资源.
回购中有几个脚本:
我试过运行它们(在构建引用的tparse2.exe文件之后)没有成功.
我已经尝试修改它们以使它们运行但除了错误之外什么也没有.
我通过电子邮件发送了作者,并在github repo上发布了一个问题,但一无所获.我只有其他人有同样的麻烦,谁说他得到它运行,但速度比新GPU硬件报告的速度慢得多.
我一直在搜索试图找到任何使用过此库以达到这些速度而没有运气的人.这个库中有多个引用浮动到这个库,作为最快的实现,并引用了论文中的数字:
当我搜索一个类似的库(gensim),以及import运行它所需的代码时,我发现了数以千计的结果和教程,但是对BIDMach代码的类似搜索仅产生了BIDMach仓库.
这个BIDMach实现肯定是最好的声誉,但是那里的任何人都可以告诉我如何使用它吗?
我想要做的就是运行一个简单的培训过程,将它与我自己硬件上的一些其他实现进行比较.
我可以找到的这个概念的每个其他实现都可以使用原始shell脚本测试文件,提供实际指令,或提供自己的shell脚本进行测试.
更新:该库的作者添加了额外的shell脚本以使前面提到的脚本运行,但它们究竟是什么意思或它们如何工作仍然是一个完全的谜,我无法理解如何让word2vec训练程序运行我自己的数据.
编辑(赏金)
我将给予任何可以解释我如何使用我自己的语料库(text8会很棒),然后训练模型,然后将输出向量和词汇表保存到Omar可以读取的文件的任何人的赏金.Levy的Hyperwords.
这正是原始C实现对参数的作用 -binary 1 -output vectors.bin -save-vocab vocab.txt
这也是英特尔的实现,以及其他CUDA实现等,所以这是生成可以轻松与其他版本进行比较的东西的好方法......
UPDATE(赏金过期但没有回答)
John Canny已经更新了repo中的一些脚本并添加了一个fmt.txt文件,因此可以运行repo中包的测试脚本.
但是,我尝试使用text8语料库运行此操作会在高位字测试中产生接近0%的准确率.
在十亿字基准(这就是repo脚本现在所做的)上运行训练过程也会在高字测试中产生低于平均值的准确度.
因此,要么库在这些测试中从未达到准确性,要么我仍然在我的设置中遗漏了一些东西.
我有这样的文件:
documents = [
"I work on c programing.",
"I work on c coding.",
]
Run Code Online (Sandbox Code Playgroud)
我有同义词文件,如:
synonyms = {
"c programing": "c programing",
"c coding": "c programing"
}
Run Code Online (Sandbox Code Playgroud)
我想替换我编写此代码的所有同义词:
# added code to pre-compile all regex to save compilation time. credits alec_djinn
compiled_dict = {}
for value in synonyms:
compiled_dict[value] = re.compile(r'\b' + re.escape(value) + r'\b')
for doc in documents:
document = doc
for value in compiled_dict:
lowercase = compiled_dict[value]
document = lowercase.sub(synonyms[value], document)
print(document)
Run Code Online (Sandbox Code Playgroud)
输出:
I work on c …Run Code Online (Sandbox Code Playgroud) 在我试图实施的论文中,它说,
在这项工作中,推文使用三种类型的文本表示建模.第一个是由tf-idf(术语频率 - 逆文档频率)加权的词袋模型(第2.1.1节).第二个代表一个句子,通过平均所有单词的嵌入(在句子中),第三个代表一个句子,通过平均所有单词的加权单词嵌入,单词的权重由tf-idf给出(第2.1.2节) ).
我不确定所提到的第三种表示形式,因为使用单词权重的加权单词嵌入由tf-idf给出.我甚至不确定它们是否可以一起使用.
我有一个关于运行Spark MLlib的word2vec的问题.我运行它的词汇大小约为2.4M,语料库大小约为1.4B.为某些单词获取+ -infinity向量的原因是什么?它发生在我增加迭代次数时,即10次迭代我得到一个合理的模型,并且在20次迭代中我得到了一些形式为[Infinity,-Infinity,Infinity,-Infinity,...]的向量.提前致谢.
我已经在gensim中训练了我自己的word2vec模型,我正在尝试在spacy中加载该模型.首先,我需要将它保存在我的磁盘中,然后尝试在spacy中加载init模型,但无法弄清楚具体如何.
gensimmodel
Out[252]:
<gensim.models.word2vec.Word2Vec at 0x110b24b70>
import spacy
spacy.load(gensimmodel)
OSError: [E050] Can't find model 'Word2Vec(vocab=250, size=1000, alpha=0.025)'. It doesn't seem to be a shortcut link, a Python package or a valid path to a data directory.
Run Code Online (Sandbox Code Playgroud) 我正在玩FastText,https: //pypi.python.org/pypi/fasttext 非常相似FastText.因为它似乎是一个非常新的库,但还没有很多内置函数.我想知道如何提取形态相似的词,例如:Word2Vec- >狗.但是没有内置的功能.
如果我输入model.similar_word("dog")I只获得向量,那可能用于比较余弦相似度model["dog"].我是否必须进行某种循环并对model.cosine_similarity(model["dog"], model["dogs"]])文本中所有可能的对进行操作?那需要时间......
word2vec ×10
nlp ×3
gensim ×2
python ×2
apache-spark ×1
cpython ×1
fasttext ×1
model ×1
python-3.x ×1
spacy ×1
svn ×1
tensorflow ×1
tf-idf ×1