我尝试使用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)
我不明白为什么文本有问题。如果您能帮我解决问题,我将不胜感激。谢谢。
我想用插入符号交叉验证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被视为线性.
谢谢!
我有以下数据框和功能:
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_df对my_function功能,但与不包含额外的参数param_df,比方说z=3。
我尝试了这个但是失败了:
library(tidyverse)
param_df %>%
purrr::map(my_function, z =3 )
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)Error in .f(.x[[i]], ...) : argument "y" is missing, with no default
预期结果是一个包含三个值的列表:全部6.9。
我知道我可以插入3在param_df作为额外的列 …
我想提供以下数据
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)
我想将上述信息转换为以下图形表示
上面描述的图形类型是什么?我检查了点图,但只是垂直堆叠.
我试图按照此处的步骤在插入符号中构建 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) 我有一个看起来像这样的数据框
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)
知道我怎么能把它变成概率?
我想从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";
任何人都可以帮助我理解R编程语言中简单(*)乘法和双星号(**)乘法之间的区别是什么?
x <- runif (10)
x*2
x**2
Run Code Online (Sandbox Code Playgroud) 我正在使用“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 …
使用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) 在 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)
如何创建网格搜索以找到参数的最佳值?
我目前正在做一个文本处理过程,我希望将类似的单词(表格,表格等)转换成一个单词(表格).我看到tm包提供了一个工具,但这个不支持我正在寻找的语言.因此,我想自己创造一些东西.
对于我希望有一个链接表的函数 - >
a <- c("Table", "Tables", "Tree", "Trees")
b <- c("Table", "Tree", "Chair", "Invoice")
df <- data.frame(b, a)
Run Code Online (Sandbox Code Playgroud)
这样我就可以自动将所有"表"值转换为"表"
有关如何做到这一点的任何想法?