小编Dmi*_*nov的帖子

Rcpp和默认的C++编译器

我对Rcpp有一些奇怪的麻烦 - 它使用了不可预测的C++编译器.这个问题有点类似于这个问题.
我在OSX上,我有2个编译器 - 默认clang和openmp clang-omp支持.我也有以下~/.R/Makevars文件(我设置clang-omp为默认编译器):

CC = clang-omp
CXX = clang-omp ++
CFLAGS + = -O3 -Wall -pipe -pedantic -std = gnu99
CXXFLAGS + = -O3 -Wall -pipe -Wno-unused -pedantic -fopenmp

问题是,我正在开发的软件包编译而clang++不是clang-omp++.我也尝试过(作为实验来解决问题)更改包src/Makevars和设置CXX=clang-omp++以及修改后的$R_HOME/etc/Makeconf CXX条目CXX = clang-omp++.没有运气 - 它仍然可以编译clang++.不知道为什么会这样.

这里也是小的可重现的(来自控制台R和来自Rstudio)的例子(不知道它是否与上面的问题有关).假设2个非常相似的cpp函数:
1.

#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
NumericVector timesTwo(NumericVector x) {
  return x * 2;
} …
Run Code Online (Sandbox Code Playgroud)

macos r rcpp clang++

11
推荐指数
1
解决办法
4349
查看次数

R向量大小限制:.C中不支持"长向量(参数5)"

我有一个非常大的矩阵我试图在具有足够内存的服务器上运行glmnet.它甚至在非常大的数据集上工作到一定程度,之后我得到以下错误:

Error in elnet(x, ...) : long vectors (argument 5) are not supported in .C
Run Code Online (Sandbox Code Playgroud)

如果我理解正确,这是由R的限制引起的,R不能有任何长度超过INT_MAX的向量.那是对的吗?有没有可用的解决方案,不需要完全重写glmnet?任何替代R解释器(Riposte等)是否解决了这个限制?

谢谢!

scalability r vector bigdata glmnet

10
推荐指数
1
解决办法
3265
查看次数

我如何使用 Glove 词嵌入构建模型并使用 R 中的 text2vec 预测测试数据

我正在使用 GloVe 词嵌入将文本数据的分类模型分为两类(即将每个评论分为两类)。我有两列,一列包含文本数据(评论),另一列是二进制目标变量(评论是否可操作)。我能够使用 text2vec 文档中的以下代码为文本数据生成 Glove 词嵌入。

glove_model <- GlobalVectors$new(word_vectors_size = 50,vocabulary = 
glove_pruned_vocab,x_max = 20L)
#fit model and get word vectors
word_vectors_main <- glove_model$fit_transform(glove_tcm,n_iter = 20,convergence_tol=-1)
word_vectors_context <- glove_model$components
word_vectors <- word_vectors_main+t(word_vectors_context)
Run Code Online (Sandbox Code Playgroud)

如何构建模型并生成对测试数据的预测?

r text-classification word2vec word-embedding text2vec

5
推荐指数
1
解决办法
1891
查看次数

用R中的text2vec预测下一个单词

我正在R中构建一个语言模型,根据前面的单词预测句子中的下一个单词.目前我的模型是一个简单的ngram模型,带有Kneser-Ney平滑.它通过在训练集中找到具有最大概率(频率)的ngram来预测下一个字,其中平滑提供了一种内插低阶ngrams的方法,这在高阶ngram具有低频率并且可能不提供可靠预测的情况下是有利的. .虽然这种方法工作得相当好,但是在n-gram无法捕获上下文的情况下它会失败.例如,"外面温暖而阳光充足,让我们去......"和"外面寒冷和下雨,让我们去......"将提出相同的预测,因为没有捕捉到天气的背景在最后的n-gram中(假设n <5).

我正在寻找更高级的方法,我找到了text2vec包,它允许将单词映射到向量空间,其中具有相似含义的单词用相似(近似)向量表示.我有一种感觉,这种表示可能有助于下一个单词预测,但我无法弄清楚如何定义训练任务.我的问题是,如果text2vec是用于下一个单词预测的正确工具,如果是,那么可以用于此任务的合适预测算法是什么?

nlp r n-gram text2vec

4
推荐指数
2
解决办法
1989
查看次数

R矩阵。将稀疏矩阵的特定元素设置为零。

我有相当大的稀疏矩阵(dgCMatrixdgTMatrix,但这在这里不是很重要)。我想将某些元素设置为零。
例如,我有一个3e4 * 3e4矩阵,该矩阵是上三角形,并且非常密集:〜23%的元素不是零。(实际上,我有更大的矩阵〜1e5 * 1e5,但是它们更稀疏了)因此,以三重态的dgTMatrix形式需要大约3.1gb的RAM。现在,我想将小于某个阈值(例如1)的所有元素设置为零。

  1. 非常幼稚的做法(这还讨论这里)将以下内容:

    threshold <- 1
    m[m < threshold] <- 0
    
    Run Code Online (Sandbox Code Playgroud)

    但是,该解决方案远非完美-130秒的运行时间(在具有足够内存的机器上,因此没有交换),更重要的是需要25-30gb的额外RAM

  2. 我发现的第二个解决方案(并且大部分是满意的)更加有效-从头开始构建新矩阵:

    threshold <- 1
    ind <- which(m@x > threshold)
    m <- sparseMatrix(i = m@i[ind], j = m@j[ind], x = m@x[ind], 
                 dims = m@Dim, dimnames = m@Dimnames, 
                 index1 = FALSE, 
                 giveCsparse = FALSE, 
                 check = FALSE)
    
    Run Code Online (Sandbox Code Playgroud)

    它需要仅〜6秒需要5GB〜额外 RAM。

问题是-我们可以做得更好吗?尤其有趣的是,是否可以用更少的RAM使用率来做到这一点?如果能够就地执行此操作那将是完美的。

r sparse-matrix

1
推荐指数
1
解决办法
1021
查看次数

如何从text2vec LDA获取主题概率表

text2vec包中的LDA主题建模非常棒.它确实比topicmodel快得多

但是,我不知道如何获得每个文档属于每个主题的概率,如下例所示:

    V1  V2  V3  V4
1   0.001025237 7.89E-05    7.89E-05    7.89E-05
2   0.002906977 0.002906977 0.014534884 0.002906977
3   0.003164557 0.003164557 0.003164557 0.003164557
4   7.21E-05    7.21E-05    0.000360334 7.21E-05
5   0.000804433 8.94E-05    8.94E-05    8.94E-05
6   5.63E-05    5.63E-05    5.63E-05    5.63E-05
7   0.001984127 0.001984127 0.001984127 0.001984127
8   0.003515625 0.000390625 0.000390625 0.000390625
9   0.000748503 0.000748503 0.003742515 0.003742515
10  0.000141723 0.00297619  0.000141723 0.000708617
Run Code Online (Sandbox Code Playgroud)

这是text2vec lda的代码

ss2 <- as.character(stressor5$weibo)
seg2 <- mmseg4j(ss2)


# Create vocabulary. Terms will be unigrams (simple words).
it_test = itoken(seg2, progressbar = FALSE)
vocab2 …
Run Code Online (Sandbox Code Playgroud)

r lda text2vec

1
推荐指数
1
解决办法
974
查看次数