小编phi*_*ver的帖子

读取txt中文时出错:corpus()仅适用于字符、语料库、语料库、data.frame、kwic对象

我尝试使用R、jiebaR和语料库生成一个词云并获取中文语音的词频,但无法制作语料库。这是我的代码:

library(jiebaR)
library(stringr)
library(corpus)

cutter <- worker()

v36 <- readLines('v36.txt', encoding = 'UTF-8')

seg_x <- function(x) {str_c(cutter[x], collapse = '')}

x.out <- sapply(v36, seg_x, USE.NAMES = FALSE)

v36.seg <- x.out
v36.seg

library(quanteda)

corpus <- corpus(v36.seg)  #Error begins here.
summary(corpus, showmeta = TRUE, 1)
texts(corpus)[1]

tokens(corpus, what = 'fasterword')[1]

tokens <- tokens(v36.seg, what = 'fasterword')
dfm <- dfm(tokens)
dfm


Run Code Online (Sandbox Code Playgroud)

我的文本文件包含以下段落:

在此输入图像描述

当我创建语料库时出现错误。R 返回:

Error in corpus.default(v36.seg) : 
  corpus() only works on character, corpus, Corpus, data.frame, kwic objects.
Run Code Online (Sandbox Code Playgroud)

我不明白为什么文本有问题。如果您能帮我解决问题,我将不胜感激。谢谢。

r corpus text-mining stringr quanteda

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

Caret包 - 通过平滑和线性预测器交叉验证GAM

我想用插入符号交叉验证GAM模型.我的GAM模型有一个二元结果变量,纬度和经度坐标对的各向同性平滑,然后是线性预测变量.使用mgcv时的典型语法是:

gam1 <- gam( y ~ s(lat , long) + x1 + x2, family = binomial(logit) )
Run Code Online (Sandbox Code Playgroud)

我不太确定如何使用插入符号中的train函数指定此模型.这或多或少是我的语法:

cv <- train(y ~ lat + long + x1 + x2, 
            data = data, 
            method = "gam", 
            family = "binomial", 
            trControl = trainControl(method = "LOOCV", number=1, repeats=), 
            tuneGrid = data.frame(method = "GCV.Cp", select = FALSE))
Run Code Online (Sandbox Code Playgroud)

问题是我只想平滑lat和long,并且x1和x2被视为线性.

谢谢!

r gam cross-validation mgcv r-caret

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

如何使用dplyr管道将额外参数传递给purrr :: map

我有以下数据框和功能:

param_df <- data.frame(
  x = 1:3 + 0.1,
  y = 3:1 - 0.2
)


param_df
#>     x   y
#> 1 1.1 2.8
#> 2 2.1 1.8
#> 3 3.1 0.8

my_function <- function(x, y, z) {
  x + y + z
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是通过param_dfmy_function功能,但与不包含额外的参数param_df,比方说z=3

我尝试了这个但是失败了:

library(tidyverse)
param_df %>% 
  purrr::map(my_function, z =3 )
Run Code Online (Sandbox Code Playgroud)
Error in .f(.x[[i]], ...) : argument "y" is missing, with no default
Run Code Online (Sandbox Code Playgroud)

预期结果是一个包含三个值的列表:全部6.9

我知道我可以插入3param_df作为额外的列 …

r tidyverse

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

如何在R中绘制下图?什么是这些类型的图表?

我想提供以下数据

x <- factor(c(1,2,3,4,5))
x
[1] 1 2 3 4 5
Levels: 1 2 3 4 5
value <- c(10,5,7,4,12)
value
[1] 10  5  7  4 12
y <- data.frame(x, value)
y
  x value
1 1    10
2 2     5
3 3     7
4 4     4
5 5    12
Run Code Online (Sandbox Code Playgroud)

我想将上述信息转换为以下图形表示

在此输入图像描述

上面描述的图形类型是什么?我检查了点图,但只是垂直堆叠.

graphics charts r data-visualization ggplot2

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

使用插入符号构建随机森林

我试图按照此处的步骤在插入符号中构建 RandomForest 模型。本质上,他们设置了 RandomForest,然后是最好的 mtry,然后是最好的 maxnodes,然后是最好的树数。这些步骤是有道理的,但是搜索这三个因素的相互作用而不是一次搜索一个不是更好吗?

其次,我了解对 mtry 和 ntrees 执行网格搜索。但我不知道如何设置最小节点数或最大节点数。通常建议保留默认节点大小,如下所示?

library(randomForest)
library(caret)
mtrys<-seq(1,4,1)
ntrees<-c(250, 300, 350, 400, 450, 500, 550, 600, 800, 1000, 2000)
combo_mtrTrees<-data.frame(expand.grid(mtrys, ntrees))
colnames(combo_mtrTrees)<-c('mtrys','ntrees')

tuneGrid <- expand.grid(.mtry = c(1: 4))
for (i in 1:length(ntrees)){
  ntree<-ntrees[i]
  set.seed(65)
  rf_maxtrees <- train(Species~.,
                       data = df,
                       method = "rf",
                       importance=TRUE,
                       metric = "Accuracy",
                       tuneGrid = tuneGrid,
                       trControl = trainControl( method = "cv",
                                                 number=5,
                                                 search = 'grid',
                                                 classProbs = TRUE,
                                                 savePredictions = "final"),
                       ntree = ntree
                       )
  Acc1<-rf_maxtrees$results$Accuracy[rf_maxtrees$results$mtry==1]
  Acc2<-rf_maxtrees$results$Accuracy[rf_maxtrees$results$mtry==2] …
Run Code Online (Sandbox Code Playgroud)

r random-forest r-caret

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

使用朴素贝叶来预测新值

我有一个看起来像这样的数据框

weather <- c("good", "good", "good", "bad", "bad", "good")
temp <- c("high", "low", "low", "high", "low", "low")
golf <- c("yes", "no", "yes", "no", "yes" , "no")
df <- data.frame(weather, temp, golf)
Run Code Online (Sandbox Code Playgroud)

我现在想做的是使用朴素贝叶斯方法来获得这个新数据集的概率

df_new <- data.frame(weather = "good", temp = "low")
Run Code Online (Sandbox Code Playgroud)

所以我试试

library(e1071)
model <- naiveBayes(golf ~.,data=df)
predict(model, df_new)
Run Code Online (Sandbox Code Playgroud)

但这给了我:

NO
Run Code Online (Sandbox Code Playgroud)

知道我怎么能把它变成概率?

r naivebayes

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

ASP.net TextBox TextMode="Date", 如何从代码隐藏设置值?

我想从TextBox和后面的代码中设置值TextMode = "Date",但浏览器没有显示任何内容。我正在使用 Chrome 和 Bootstrap。

HTML:

<asp:Label runat="server" AssociatedControlID="txtDateFrom" CssClass="col-md-2 control-label">From Date</asp:Label>
<div class="col-sm-3">
  <asp:TextBox runat="server" ID="txtDateFrom1" TextMode="Date" CssClass="form-control" />
  <asp:RequiredFieldValidator runat="server" ControlToValidate="txtDateFrom1" DateFormat="dd/MM/yyyy" DisplayDateFormat="dd/MM/yyyy" CssClass="text-danger" ErrorMessage="From Date field is required." Display="Dynamic" ValidationGroup="SetRelase" />
</div>
Run Code Online (Sandbox Code Playgroud)

代码隐藏:

txtDateFrom1.Text = "01/01/2010";

asp.net twitter-bootstrap

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

R中*和**乘法有什么区别?

任何人都可以帮助我理解R编程语言中简单(*)乘法和双星号(**)乘法之间的区别是什么?

x <- runif (10)
x*2
x**2
Run Code Online (Sandbox Code Playgroud)

r

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

在 R 中使用 N-Grams 创建文档术语矩阵

我正在使用“tm”包在 R 中创建 DocumentTermMatrix。它适用于 1-gram,但我正在尝试使用 tm 包和“tokenizers”包中的 tokenize_ngrams 函数创建 N-Grams(现在 N = 3)的 DocumenttermMatrix 。但我无法创建它。

我搜索了可能的解决方案,但没有得到太多帮助。出于隐私原因,我无法共享数据。这是我尝试过的,

library(tm)  
library(tokenizers)
Run Code Online (Sandbox Code Playgroud)

data 是一个大约有 4.5k 行和 2 列的数据框,即“doc_id”和“text”

data_corpus = Corpus(DataframeSource(data))
Run Code Online (Sandbox Code Playgroud)

n-gram 标记化的自定义函数:

ngram_tokenizer = function(x){
  temp = tokenize_ngrams(x, n_min = 1, n = 3, stopwords = FALSE, ngram_delim = "_")
  return(temp)
}
Run Code Online (Sandbox Code Playgroud)

用于 DTM 创建的控制列表:
1-gram

control_list_unigram = list(tokenize = "words",
                          removePunctuation = FALSE,
                          removeNumbers = FALSE, 
                          stopwords = stopwords("english"), 
                          tolower = T, 
                          stemming = T, 
                          weighting = function(x)
                            weightTf(x)
)
Run Code Online (Sandbox Code Playgroud)

用于 N-gram …

nlp r tokenize n-gram tm

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

R:apply()中的bug?

使用apply()时,我会遇到一些奇怪的行为.我正在尝试创建一个逻辑向量来指示给定列是否为虚拟变量(仅0和1值).只要所有非NA值均为0或1,具有缺失值仍应计为虚拟值.

如果有问题的数据框只包含数值,我的代码工作正常.但是,如果数据框还包含字符串列,则该函数不再忽略NA值,即使在检查以前工作的数字列时也是如此.

例:

x1 = c(1,0,1,NA)
x2 = c(1,1,0,1)
x3 = c(1,2,3,4)
x4 = c('a','b','c','d')
dat1 = data.frame(x1,x2,x3)
dat2 = data.frame(x1,x2,x3,x4)
isdum1 = apply(dat1,2,function(x) {all(x %in% c(0:1,NA))})
isdum2 = apply(dat2,2,function(x) {all(x %in% c(0:1,NA))})

isdum1   # works fine
   x1    x2    x3 
 TRUE  TRUE FALSE 
isdum2   # wtf?
   x1    x2    x3    x4 
FALSE  TRUE FALSE FALSE 
Run Code Online (Sandbox Code Playgroud)

r apply

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

如何创建网格搜索以找到最佳参数?

在 lda 分析中

library(topicmodels)
    # parameters for Gibbs sampling
    burnin <- 4000
    iter <- 2000
    thin <- 500
    seed <-list(1969,5,25,102855,2012)
    nstart <- 5
    best <- TRUE
    #Number of topics
    k <- 10
library(topicmodels)
data("AssociatedPress", package = "topicmodels")



    #Run LDA with Gibbs
    ldaOut <-LDA(AssociatedPress[1:20,], k, method="Gibbs", control=list(nstart=nstart, seed = seed, best = best, burnin =
    burnin, iter = iter, thin=thin)) 
Run Code Online (Sandbox Code Playgroud)

如何创建网格搜索以找到参数的最佳值?

r topicmodels

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

对类似的词进行分类

我目前正在做一个文本处理过程,我希望将类似的单词(表格,表格等)转换成一个单词(表格).我看到tm包提供了一个工具,但这个不支持我正在寻找的语言.因此,我想自己创造一些东西.

对于我希望有一个链接表的函数 - >

 a <- c("Table", "Tables", "Tree", "Trees")
 b <- c("Table", "Tree", "Chair", "Invoice")
 df <- data.frame(b, a)
Run Code Online (Sandbox Code Playgroud)

这样我就可以自动将所有"表"值转换为"表"

有关如何做到这一点的任何想法?

r text-mining

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