问题标签 [doc2vec]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
machine-learning - Doc2Vec 是否适合情绪分析?
我一直在阅读更多关于情感分类(分析)的现代文章,例如this。
以 IMDB 数据集为例,我发现使用 Doc2Vec (88%) 获得了相似的准确率,但是使用带有三元语法的简单 tfidf 矢量化器进行特征提取的结果要好得多 (91%)。我认为这类似于Mikolov 2015 年论文中的表 2 。
我认为通过使用更大的数据集,这会改变。所以我从这里开始使用 1mill training 和 1 mill test 的细分重新运行我的实验。不幸的是,在那种情况下,我的 tfidf vectoriser 特征提取方法增加到 93%,但 doc2vec 下降到 85%。
我想知道这是否可以预料,其他人是否发现 tfidf 即使对于大型语料库也优于 doc2vec?
我的数据清理很简单:
我已经尝试为 Doc2Vec 模型使用 400 和 1200 功能:
而我的 tfidf 矢量化器有 40,000 个最大特征:
对于分类,我尝试了一些线性方法,但是发现简单的逻辑回归就可以了……
python - Python - 使用 sklearn MDS 类在 2D 中可视化 Doc2Vec 多维向量
为了对我的Doc2Vec训练模型进行简单评估,我需要将 400 维向量转换为 2 维并将文档可视化为一组节点,其中任意两个节点之间的距离与其相似度成反比(节点高度相似的都靠得很近)。
经过一番搜索,我找到了 MDS(多维缩放)和sklearn MDS库。
现在我有 220 万个向量,每个向量都有 400 个维度,我不知道如何以正确的语法以最低的成本将它们传递给 sklearn MDS 函数。我知道在 2.2M 向量之间创建相似矩阵是不可能的。
python - Doc2Vec 模型 Python 3 兼容性
我用 Python2 训练了一个 doc2vec 模型,我想在 Python3 中使用它。
当我尝试在 Python 3 中加载它时,我得到:
这似乎与泡菜兼容性问题有关,我试图通过以下方式解决:
Gensim 保存了我重命名的其他文件,以便在调用时可以找到它们
load() 不会因 UnicodeDecodeError 而失败,但在推理之后会提供毫无意义的结果。
我无法在 Python 3 中使用 Gensim 轻松重新训练它,因为我使用此模型从中创建派生数据,因此我必须重新运行一个漫长而复杂的管道。
如何使 doc2vec 模型与 Python 3 兼容?
nlp - Doc2vec Gensim:在每个时期不更新的词嵌入
我使用 Gensim Doc2vec 模型来训练文档向量。我打印了“好”这个词的表示,但我发现每个时代,我发现没有更新!虽然我打印出 id 为“3”的文档的表示,但每个时期都不一样!
我的代码如下,不知道发生了什么。
python - 如何将 doc2vec 与短语一起使用?
我想在 doc2vec 中有短语,我使用 gensim.phrases。在 doc2vec 中,我们需要标记文档来训练模型,而我无法标记短语。我怎么能这样做?
这是我的代码
python - Gensim:如何使用以前的 word2vec 模型重新训练 doc2vec 模型
通过 Doc2Vec 建模,我训练了一个模型并保存了以下文件:
但是,我有一种新的方法来标记文档并想再次训练模型。因为已经从以前的版本中获得了词向量。有没有办法重用该模型(例如,将之前的 w2v 结果作为训练的初始向量)?有谁知道怎么做?
python - 在 gensim 中更新 doc2vec (PV-DM) 中的文档向量
我试图通过 gensim 中的平均来理解 PV-DM 的实现。在函数train_document_dm
中doc2vec.py
的返回值(“错误”)train_cbow_pair
是在求平均值的情况下(cbow_mean=1
)不除以输入向量的数量(count
)。根据这个解释,在对输入向量求平均的情况下应该除以文档数:word2vec Parameter Learning Explained, equation (23)。这是来自的代码train_document_dm
:
python - xlsx 文件的 Readlines 函数工作不正常
目标是情感分类。步骤是打开 3 个 xlsx 文件,读取它们,使用 gensim.doc2vec 方法处理并使用 SGDClassificator 进行分类。只需尝试在 doc2vec 上重复此代码。蟒蛇 2.7
但事实证明,结果列表并非预期的那样:
这些文件分别包含 18、1221 和 2203 个原始数据。我认为这些列表将具有相同数量的元素。
下一步是连接所有的句子。
这导致了当 x-train、x-test 是句子列表时的情况,因为它们应该是 while
在这个划分之后,每个句子都有一个标签:
正如numpy 文档中所写,数组的大小应该相等。但是当我将较大的文件减少到 18 行时,没有任何变化。正如我在论坛上搜索的那样,没有人有类似的错误。我已经打破了我的头出了什么问题以及如何解决它。感谢帮助!
python - doc2vec 如何集群 DocvecsArray
我从网上找到的示例中修补了以下代码:
我的 test.txt 文件每行包含一个段落。
代码运行良好并为每一行文本生成 DocvecsArray
我的目标是有这样的输出:
集群 1:[DOC_5,DOC_100,...DOC_N]
集群 2:[DOC_0,DOC_1,...DOC_N]
我找到了以下答案,但输出是:
簇 1:[单词,单词...单词]
簇 2:[单词,单词...单词]
如何更改代码并获取文档集群?
nlp - 从张量流中的多个嵌入中嵌入查找
构建一个 doc2Vec 算法,需要有多个嵌入。词向量有嵌入,同时文档本身也有嵌入。该算法的工作方式类似于 CBOW 模型,但文档嵌入也用于每个使用给定窗口训练的文档。因此,如果我们有一个包含 5 个单词的窗口,我们会继续遍历这 5 个单词,但是对于每个窗口,我们将始终包含文档嵌入向量本身,以便我们可以对其进行更新。