问题标签 [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.

0 投票
1 回答
132 浏览

r - 如何用文本和数字变量训练套索?

考虑这个修改后的经典示例:

在这里,我想用套索来预测class。感兴趣的变量是textadd_numeric

我知道如何使用或text2vec仅使用tm预测:包将转换为稀疏文档术语矩阵并提供模型。classtexttext

但是,在这里,我想同时使用文本变量textadd_numeric. 我不知道如何混合这两种方法。有任何想法吗?谢谢!

0 投票
1 回答
370 浏览

r - 从 text2vec 获取 LDAvis json

给定一个文档术语矩阵dtmtext2vec提供与LDAvis包的良好集成。但是,我想将此可视化嵌入到降价文档中。该LDAvis包具有诸如 之类的方法createJSON,这将允许我执行此操作,但这些都隐藏在 textvec 中的私有方法中。

无论如何要回到可视化的 json,或者以其他方式访问私有方法text2vec::LDA$new

0 投票
2 回答
4672 浏览

normalization - 在使用余弦相似度之前,是否有任何理由(不)对向量进行 L2 归一化?

我正在阅读 Levy 等人的论文“Improving Distributional Similarity with Lessons Learned from Word Embeddings”,在讨论他们的超参数时,他们说:

向量归一化 (nrm)如第 2 节所述,所有向量(即 W 的行)都归一化为单位长度(L2 归一化),使点积运算等效于余弦相似度。

然后我回忆起sim2R 包中向量相似度函数的默认值text2vec首先是 L2 范数向量:

所以我想知道,这可能是什么动机,规范化余弦(无论是在 text2vec 方面还是在一般方面)。我试图阅读 L2 范数,但主要是在使用欧几里得距离之前的规范化背景下出现的。在词向量空间/嵌入的余弦相似度的情况下,我无法(令人惊讶地)找到任何关于 L2 范数是否会被推荐或反对的任何信息。而且我不太具备计算分析差异的数学技能。

所以这是一个问题,意味着在从文本数据中学习的词向量空间的上下文中(可能只是由 tfidf、ppmi 等加权的共现矩阵;或像 GloVe 之类的嵌入),并计算词相似度(目标是当然要使用最能反映现实世界单词相似性的向量空间+度量)。
简而言之,在计算向量/单词之间的余弦相似度之前,是否有任何理由(不)在单词特征矩阵/术语共现矩阵上使用 L2 范数?

0 投票
2 回答
140 浏览

r - 使用 text2vec 循环标记化

编辑以缩短并提供示例数据。

我有包含 8 个问题的文本数据,向多个参与者询问了两次。我想使用 text2vec 来比较他们在两个时间点对这些问题的回答的相似性(重复检测)。以下是我的初始数据的结构(在此示例中,只有 3 名参与者,4 个问题而不是 8 个问题,以及 2 个季度/时间段)。我想对每个参与者在第一季度与第二季度的反应进行相似性比较。我打算使用包 text2vec 的 psim 命令来执行此操作。

我做了更多的思考,我相信正确的方法是将数据框拆分为数据框列表,而不是单独的项目。

questlist<-split(df,f=df$Question)

然后编写一个函数来为每个问题创建词汇表。

library(text2vec)

vocabmkr<-function(x) { itoken(x$AnswerText, ids=x$ID) %>% create_vocabulary()%>% prune_vocabulary(term_count_min = 2) %>% vocab_vectorizer() }

test<-lapply(questlist, vocabmkr)

但后来我认为我需要将原始数据框拆分为问题季度组合,并将另一个列表中的词汇应用到它上面,但不知道该怎么做。

最终,我想要一个相似度分数来告诉我参与者是否重复了他们在第一季度和第二季度的部分或全部回答。

编辑:这是我从上述数据框开始的单个问题的方法。

编辑:好的,我已经与 lapply 合作了一些。

如何将词汇列表(由 4 个元素组成)应用于 dfqq 列表(由 8 个元素组成)?

0 投票
2 回答
597 浏览

r - R函数参考参数而不评估它

islands1<-islands #a named num (vector)

data.frame(island_col=names(islands1), number_col=islands1,row.names=NULL)

这将创建一个由两列组成的数据框,第一列包含命名向量中的名称,称为“island_col”,第二列包含数字并命名为“number_col”。这里没有问题。

现在假设我编写了一个函数,因为我有一堆要转换为数据帧的命名向量。每个向量都有编号,例如 island1、islands2 等。

dfunc<-function(x) data.frame(island_col=names(x), as.name(x)<-(x),row.names=NULL) 这是一个使用 data.frame 将命名向量转换为数据框的函数

firstdf<-dfunc(islands) 我在名为“islands1”的向量上使用该函数。我希望将数字列命名为“islands1”,因为这是参数的名称,但 R 不理解这一点,而是尝试评估参数本身。我尝试了使用 paste0 函数和 as.character 的变体,但无法使其正常工作。

另外,是的,我知道导致这些命名向量的所有这些可能都应该用 lapply 完成,所以我现在有一个可以使用的列表。我花了很多时间走这条路(请参阅我的另一个问题),但最终无法让它发挥作用,并且需要考虑最后期限。更一般地说,我试图更好地理解 R 如何以及何时评估参数以及如何索引对象。

0 投票
0 回答
661 浏览

r - 错误:尝试在 text2vec 中应用非函数

我正在尝试复制以下链接中给出的示例

https://cran.r-project.org/web/packages/text2vec/vignettes/glove.html

我已经手动解压缩了文件。

我在这个阶段收到以下错误

任何帮助都会很棒。

0 投票
1 回答
568 浏览

r - 使用二元组创建共现矩阵

我正在寻找使用双元组而不是来自单个字符串的单元组创建一个共现矩阵。我指的是以下链接

http://text2vec.org/glove.html

https://tm4ss.github.io/docs/Tutorial_5_Co-occurrence.html#3_statistical_significance

我想创建矩阵并遍历它以创建数据集,如下所示

最大的收获是用二元组遍历句子。对此的任何帮助都会很棒

0 投票
0 回答
129 浏览

regex - 关于添加开始/结束句子标记的初学者建议:使用 Quanteda 功能与手动操作(自定义代码)

我需要在我使用 Quanteda 分析的一些文本中添加开始和结束句子标记。
我想使用 Quanteda 添加这些标记,但我没有看到“开箱即用”的明确方法。
在寻找答案时,我在这里发现了一个关于 quanteda 和这些标记的不同问题这里关于标记的另一个问题加强了我的猜测,即这项任务是“手动”完成的。

这是为了询问目前使用 Quanteda 添加此类标记的最佳方法是什么,以及与在自定义代码中执行此操作相比,它有哪些优点(“NLP 智能”?)和缺点(较低的速度、内存)。

我最感兴趣的是一般答案,欢迎任何关于我的案例细节的额外建议,它们是:

  • 文本大小:非常大,例如当试图将文本分割成句子时,Quanteda 在 2-3 小时后仍在运行,我总是不得不终止会话。

  • 我想使用 Quanteda,但不是不惜一切代价,我喜欢用 R、Python、Java 和正则表达式进行编码,如果其他非大型软件包带来相关优势,我在学习和使用它们来完成这项任务时没有问题(text2vec? )。


    输入和期望输出的样本。
    使用“sss”和“eee”作为开始和结束句子标记:
    输入
    CENTERS FOR DISEASE CONTROL AND PREVENTION (CDC). Outbreak of influenza A in a nursing home - New York, Dec. 1991-Jan. 1992. MMWR Morb Mortal Wkly Rep 1992; 18: 129-31.
    期望输出
    sss CENTERS FOR DISEASE CONTROL AND PREVENTION (CDC) eee sss Outbreak of influenza A in a nursing home - New York, Dec. 1991-Jan. 1992 eee sss MMWR Morb Mortal Wkly Rep 1992; 18: 129-31 eee

0 投票
1 回答
748 浏览

r - 在 R 中使用 tex2vec 的手套词嵌入模型参数,并在每 n 次迭代后显示训练输出(epochs)

我在 R 中使用 text2vec 包来训练词嵌入(手套模型):

当我运行此代码时,我得到以下输出: 在此处输入图像描述

我的问题是:

  1. 是否有可能在每 n 次迭代后输出,即 epoch 50、100、150 等的输出。
  2. 对于 word_vectors_size、x_max 和 learning_rate 的最佳值有什么建议吗?例如对于 10,000 个文档,这些参数的最佳值是多少?

感谢您的回复。

非常感谢,山姆

0 投票
1 回答
402 浏览

r - R中的Word Mover距离相似度

我想使用宽松的单词移动距离来计算文本相似度。我有两个不同的数据集(语料库)。见下文。

text2vec在 R 中使用包。看来我做错了什么。

合并两个数据集

文档术语矩阵

术语共现矩阵

手套型号

期望的输出:数据框 A 的“妇科医生会诊”应映射到数据框 B 的“妇科医生会诊(检查)”。同样,数据框 A 的文本应与数据框 B 的文本匹配。