关于 r:Issue with tidytext() :无法将 unnest_tokens 应用到数据帧

Issue with tidytext() : unable to apply unnest_tokens to dataframe

我一直在尝试在数据帧列中应用来自 tidytext 的 unnest_tokens 来生成常见的二元组和三元组。它们是来自 > 200 篇文章的简短文本。它们也是来自较大 csv 的列子集。

我尝试了以下方法,但无济于事:
1.设置stringsasfactors = FALSE
2. 使用 unnest_、unnest_tokens_。

示例:
bookparagraphs.csv

1
2
3
4
5
6
a<- data.frame("texts" = bookparagraphs$text[1:10], stringsAsFactors = FALSE)

str(a)

'data.frame':   10 obs. of  1 variable:
$ text: Factor w/ 6552 levels

Error in check_input(x) :
Input must be a character vector of any length or a list of character
vectors, each of which has a length of 1.***

然而,当我转换我的文本 > 语料库 > DTM 等时,tm_map 工作得非常好。我能够很好地计算和审查单词的共现。

我想在使用 tidytext 方面做得更好,因此我正在寻找它是如何工作的以及我哪里出错了。

感谢任何建议!谢谢你。


你在 tidytext 中得到的错误是因为文本是一个因素。这意味着您的 bookparagraphs$text 是一个因素。可能来自阅读 bookparagraphs.csv。当您只使用 a <- data.frame("texts" = bookparagraphs$text[1:10], stringsAsFactors = FALSE) 时,stringAsFactors 对因子 bookparagraphs$text 没有影响。使用 stringAsFactors = FALSE 读取 bookparagraphs.csv 或使用 readr 加载数据。或者使用:

1
a <- data.frame("texts" = as.character(bookparagraphs$text[1:10]), stringAsFactors = FALSE)

这会将 bookparagraphs$text 强制转换为字符向量,并且 stringAsFactors = FALSE 可防止它再次变成一个因子。

此后,您可以毫无问题地使用 unnest_tokens