嗨,我正在使用tidy_text格式,我试图将字符串"电子邮件"和"电子邮件"替换为"电子邮件".
set.seed(123)
terms <- c("emails are nice", "emailing is fun", "computer freaks", "broken modem")
df <- data.frame(sentence = sample(terms, 100, replace = TRUE))
df
str(df)
df$sentence <- as.character(df$sentence)
tidy_df <- df %>% 
unnest_tokens(word, sentence)
tidy_df %>% 
count(word, sort = TRUE) %>% 
filter( n > 20) %>% 
mutate(word = reorder(word, n)) %>% 
ggplot(aes(word, n)) +
geom_col() +
xlab(NULL) + 
coord_flip()
这工作正常,但当我使用:
 tidy_df <- gsub("emailing", "email", tidy_df)
替换单词并再次运行条形图我收到以下错误消息:
UseMethod("group_by_")中的错误:没有适用于"group_by_"的方法应用于类"character"的对象
有没有人知道如何在不改变tidy_text的结构/类的情况下,在整洁的文本格式中轻松替换单词?
我的数据已经在一个数据框中,每行一个令牌。我想过滤掉包含停用词的行。
数据框看起来像:
docID <- c(1,2,2)
token <- c('the', 'cat', 'sat')
count <- c(10,20,30)
df <- data.frame(docID, token, count)
我试过下面的,但得到一个错误:
library(tidyverse)
library(tidytext)
library(topicmodels)
library(stringr)
data('stop_words')
clean_df <- df %>%
  anti_join(stop_words, by=df$token)
错误:
Error: `by` can't contain join column `the`, `cat`, `sat` which is missing from LHS
我该如何解决这个问题?
tidytext书中有一些示例,主题模型更加整洁:
library(tidyverse)
library(tidytext)
library(topicmodels)
library(broom)
year_word_counts <- tibble(year = c("2007", "2008", "2009"),
+                            word = c("dog", "cat", "chicken"),
+                            n = c(1753L, 1157L, 1057L))
animal_dtm <- cast_dtm(data = year_word_counts, document = year, term = word, value = n)
animal_lda <- LDA(animal_dtm, k = 5, control = list( seed = 1234))
animal_lda <- tidy(animal_lda, matrix = "beta")
# Console output
Error in as.data.frame.default(x) : 
  cannot coerce class "structure("LDA_VEM", package = "topicmodels")" to a data.frame
In addition: Warning message:
In tidy.default(animal_lda, matrix …我尝试安装软件包tidytext,但出现以下错误:
install.packages("tidytext")
Installing package into ‘\\dcn4pfsh404/home_8/TUT/Documents/R/win-library/3.3’
(as ‘lib’ is unspecified)
trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.3/tidytext_0.1.2.zip'
Content type 'application/zip' length 2755455 bytes (2.6 MB)
downloaded 2.6 MB
Error in install.packages : missing value where TRUE/FALSE needed
谁能帮助我了解我所缺少的吗?谢谢
我正在试验 Tidytext(使用 R 进行文本挖掘),我想使用 widyr 库中的 pairwise_count 和 pairwise_cor 函数。我的语料库来自一个经过处理的文本文件。
library(readr)
library(dplyr)
library(tidytext)
library(widyr)
set.seed(2017)
Korpus <- read_file("/home/knecht/korpus.res")
print(Korpus)
Korpus_DF <-data_frame(document= 1, text=Korpus)
spon_words <- Korpus_DF %>%
  unnest_tokens(word, text)
print(spon_words)
spon_words %>%
  count(word, sort=TRUE)
word_cors <- spon_words %>%
  group_by(word) %>%
 filter(n()>= 10) %>%
  pairwise_cor(word, document, sort = TRUE, upper= FALSE)
word_cors
pair_test <- spon_words %>%
  pairwise_count(word, document)
print(pair_test)
我想,我没有得到正确的结果,因为语料库包含多个短语,如“spiegel online”或“spiegel plus”短语,但这些短语没有出现在结果表中:
> library(readr)
> library(dplyr)
> library(tidytext)
> library(widyr)
> set.seed(2017)
> Korpus <- read_file("/home/knecht/korpus.res")
> print(Korpus)
[1] "29.12.2017 17:24:57 …给定字符串,"This has 4 words!"我只想计算字母和数字。我想排除空格和标点符号。因此,上面的字符串应该返回13。
我不知道为什么,但我无法为 R 得到这个。
我将lm()模型的公式存储为chr变量,并尝试将公式中的所有变量提取到向量中。
为了使其可复制,使用mtcars变量:mpg, cyl, 和drat(并且我的公式在示例中具有转换等)
model_string <- "mpg ~ cyl + I(abs(0.5-drat)) + I((0.5 - drat)^2)"
我想要的输出是:
vars_used <- c("mpg", "cyl", "drat")
到目前为止,我所做的是:
library(tidyverse)
vars_used <- model_string %>% 
  str_extract_all(pattern = "\\w+") %>% 
  pluck(1) %>% 
  str_remove_all(pattern = "[0-9]")
vars_used
[1] "mpg"  "cyl"  "I"    "abs"  ""     ""     "drat" "I"    ""     ""     "drat" ""    
有没有更简单的方法来完成我想要做的事情,特别是使用 tidytext?
我仍然需要删除向量中的空字符串,并删除重复项。
使用tidytext,我有这个代码:
data(stop_words)
tidy_documents <- tidy_documents %>%
      anti_join(stop_words)
我希望它使用包中内置的停用词将名为tidy_documents的数据帧写入同名的数据帧中,但如果它们在stop_words中,则删除单词.
我收到此错误:
错误:没有常见变量.请指定by参数.追溯:
1. tidy_documents %>% anti_join(stop_words)
2. withVisible(eval(quote(`_fseq`(`_lhs`)), env, env))
3. eval(quote(`_fseq`(`_lhs`)), env, env)
4. eval(expr, envir, enclos)
5. `_fseq`(`_lhs`)
6. freduce(value, `_function_list`)
7. withVisible(function_list[[k]](value))
8. function_list[[k]](value)
9. anti_join(., stop_words)
10. anti_join.tbl_df(., stop_words)
11. common_by(by, x, y)
12. stop("No common variables. Please specify `by` param.", call. = FALSE)
我正在处理一列格式为字符串的 url 向量,每个 url 用逗号分隔:
column_with_urls
["url.a, url.b, url.c"]
["url.d, url.e, url.f"]
我想使用tidytext::unnest_tokens()R 函数将它们分成每行一个 url(尽管我对其他基于 R 的解决方案持开放态度)。我已经阅读了此处的文档,但我不知道是否可以/建议输入单个字符进行拆分。
我的想法是这样的unnest_tokens(url, column_with_urls, by = ',')。有没有办法指定那种论点和/或解决这个问题的更好方法?
我想要的输出是一个数据框,每行一个 url,像这样(以及复制到每一行的原始行的所有其他数据):
网址
网址.a
网址.b
网址.c
...
提前致谢。
我正在尝试在R中运行情感分析。我已经安装了tidytext,它与所有其他软件包一起位于正确的库中。
但是,当我跑步时
get_sentiments("afinn") 
我收到以下错误:
Error in loadNamespace(name) : there is no package called ‘textdata’
有关如何修复的任何建议?