问题标签 [text2vec]
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.
r - Glove Word Mover 相似度
我想使用宽松的单词移动距离来计算文本相似度。我有两个不同的数据集(语料库)。见下文。
我在 R 中使用 text2vec 包。
skip_grams_window = 3
在代码中是否tcm = create_tcm(it, vectorizer, skip_grams_window = 3)
意味着在创建共现矩阵时向右检查 3 个单词?例如,文本 'X-ray right leg arteries' 将变成矢量 - target :'X-ray'
有什么用word_vectors_size
?我读过手套的算法,但不明白这个函数的用法。
glove_model = GloVe$new(word_vectors_size = 10, 词汇 = v, x_max = 3)
r - 在 shinyApp 中使用 R text2vec 包和 LDAvis 的 LDA 主题模型
这是使用 R text2vec 包进行 LDA 主题建模的代码:
据我了解,有两组变量,分别命名为公共和私有,请参见下图:
我想知道如何访问“doc_len”的私有变量。我尝试了 lda_model$doc_len 和 lda_model$private$doc_len,但它们返回“NULL”。
我需要的原因是命令“lda_model$plot()”在 R 控制台中绘制 LDAvis,但我需要在我自己的闪亮应用程序页面中绘制它。为此,我想提取以下链接中讨论的以下函数的所有参数:“ https://github.com/cpsievert/LDAvis/issues/27 ”。
感谢您的回复和帮助,无论是提取 lda 模型的私有参数还是如何在自己的闪亮应用程序页面中使用“lda_model$plot()”绘制 LDAvis。
谢谢,山姆
r - 使用 text2vec 进行多标签分类
我想知道 text2vec 包是否可用于多标签分类,如 skmultilearn.problem_transform 中的 python 的 BinaryRelevance 我目前指的是记录在以下位置的管道:http: //text2vec.org/vectorization.html
r - 如何在 R 中将每个单词出现表示为单独的 tcm 向量?
我正在寻找一种有效的方法来为语料库中的(每个)目标词创建一个术语共现矩阵,这样每个出现的词都会在 tcm 中构成它自己的向量(行),其中列是上下文词(即基于标记的共现模型)。这与向量语义中使用的更常见的方法形成对比,其中每个术语(类型)在对称的 tcm 中获取一行和一列,并且值在类型标记的(共同)出现中聚合。
显然,这可以使用基本 R 功能从头开始完成,或者通过过滤由执行这些操作的现有软件包之一生成的 tcm 来破解,但我正在处理的语料库数据相当大(数百万字) - 并且有R 已经可以使用不错的语料库/NLP 包,它们可以有效地完成这些任务,并将结果存储在内存友好的稀疏矩阵中——例如text2vec
(function tcm
)、quanteda ( fcm
) 和 tidytext ( cast_dtm
)。因此,尝试重新发明轮子(在迭代器、散列等方面)似乎没有意义。但是我也找不到一种直接的方法来使用这些中的任何一个来创建基于令牌的 tcm;因此这个问题。
最小的例子:
尝试为目标词“short”获取基于标记的模型:
What is a better/faster alternative to this approach to derive a token-based tcm like in the last example? (possibly using one of R packages that already do type-based tcms)
r - 在 R 中使用 text2vec - 错误:没有名为“futile.options”的包
我在 R 中成功安装text2vec
,但是当我尝试使用 加载它时library(text2vec)
,出现错误:
我正在运行 Windows 10 企业版 - 版本 1709。内部版本:16299.726
我的 R 详细信息是:
r - R text2vec 包中的哈希矢量化器,带有停用词删除选项
我正在使用 R text2vec 包来创建文档术语矩阵。这是我的代码:
另一种方法是 hash_vectorizer() 而不是 vocab_vectorizer() 为:
但是当我使用 hash_vectorizer 时,没有删除停用词和修剪词汇的选项。在一个研究案例中,hash_vectorizer 对我来说比 vocab_vectorizer 效果更好。我知道可以在创建 dtm 甚至创建令牌时删除停用词。是否有任何其他选项,类似于 vocab_vectorizer 以及它是如何创建的。特别是我对一种也支持类似于 prune_vocabulary() 的修剪词汇的方法感兴趣。
我很欣赏你的回应。谢谢,山姆
r - 文本相似度 - 余弦 - 控制
我想问你,是否有人可以检查我的代码,因为它的行为很奇怪 - 不工作,给我错误,突然工作而没有改变任何东西 - 代码将在底部。
背景:所以我的目标是计算几个国家在联合国大会上发表的年度声明之间的文本相似度 [cosine, for now] 。更具体地说,在给定年份中找到语句 x 和语句 y 之间的相似性,并在所有 45 年中进行。所以我可以为它的演变做一个图表。
我是怎么做的:所以[我是新手]我决定分几个步骤来做这项工作——首先找到 A 国与 B 国的陈述的相似性,然后为其他国家重新做这项工作(A 国留下,一切是A国)。
所以我过滤了 A 国的报表,按年份排列。是否进行了文本预处理(标记化、降级、停用词、字元化、词袋)。然后我从中制作了一个 TF-IDF 矩阵 - 命名为:text.tokens.tfidf
我为 B 国做了同样的过程,得到了text.tokensChina.tfidf - 只是在新纸上将所有 text.tokens 替换为 text.tokensChina。因此,每个矩阵都包含 1971 年至 2005 年的年度报表的 tf-idf,其中行 = 文档(年),列 = 术语。
计算余弦相似度:所以我决定使用此处描述的 Text2Vec -但是,我没有为其定义公共空间和项目文档- 不知道它是否至关重要。然后决定给两个函数sim2 和 psim2 发短信,因为我不知道并行的区别。
一开始出了什么问题:当第一次运行函数时,我收到一个错误,可能告诉我,我在两个 TF-IDF 矩阵中的列长度不匹配:
ncol(x) == ncol(y) 不正确
但是,重新运行我所有步骤的代码,然后再试一次,它起作用了,但我没有改变任何东西......
结果:函数 sim2 的结果是奇怪的表 [1:45, 1:45]。显然不是我想要的——在给定年份 A 国和 B 国的演讲相似的专栏。
函数 psim2 的结果更好 - 一列的结果[不确定,虽然它们有多正确]。
技术问题:使用 Psim2 是我想要的 - 我没有看到 sim2 创建了类似相关热图的东西,我的错。但是为什么即使列的长度不同(图片),Psim2 函数也能正常工作?另外,我没有做错什么吗,尤其是当我没有创建一个公共空间的时候?
代码,图片:
全球环境图片: 我的屏幕图片与全球环境 + Psim2 结果
r - 使用 GLOVE 预训练的 glove.6B.50.txt 作为词嵌入 R 的基础
我正在尝试使用 R 中的 GLOVE 将文本数据转换为向量。我的计划是平均一个句子的词向量,但我似乎无法进入词向量化阶段。我已经下载了 glove.6b.50.txt 文件,它的父 zip 文件来自:https ://nlp.stanford.edu/projects/glove/我访问了 text2vec 的网站并尝试运行他们加载维基百科数据的示例。但我不认为它是我正在寻找的(或者我不理解它)。我正在尝试将预训练的嵌入加载到模型中,这样如果我有一个句子(比如“我爱灯”),我可以遍历那个句子并将每个单词变成一个向量,然后我可以平均(将未知单词变成zeros) 具有矢量化(word) 之类的函数。如何将预训练的嵌入加载到手套模型中作为我的语料库(这甚至是我实现目标所需要做的吗?)
python - R中松弛的Word Mover距离
我在包中使用Relaxed Word Mover's Distancetext2vec
来计算文档之间的距离,以便为每个目标文档识别最相似的文档。词向量是使用PythonFastText
的 pacakage编译的gensim
。文档的长度可以从一个词到超过 50 个词不等。一些文档在语料库中重复。我假设这些重复文件之间的距离应该很短,并且不同对相同文档的值应该相同。然而,我观察到这些相同对的距离可以从接近 0 到超过 1 不等,并且一些其他不太相关的文件甚至被认为比这些相同对更近。我使用的命令如下:
上面的模型有问题吗?
r - 为什么 text2vec 中的 LSA 每次都会产生不同的结果?
我在text2vec
包中使用潜在语义分析来生成词向量并使用转换来适应新数据,当我注意到一些奇怪的东西时,在相同数据上训练时空间没有对齐。
该方法似乎存在一些不一致(或随机性?)。也就是说,即使在完全相同的数据上重新运行 LSA 模型时,尽管输入相同,但得到的词向量也大不相同。环顾四周时,我只发现了这些旧的已关闭 github 问题链接 链接,并且在更新日志中提到了有关 LSA 正在清理的内容。我使用 movie_review 数据集和文档中的(稍作修改)代码重现了该行为:
这是怎么回事,它是一个错误,这是出于某种原因的预期行为,还是我有一个巨大的误解?(我有点希望后者......)。如果是有意的,为什么 quanteda 的行为会有所不同?