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

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.***

但是,tm_map 在我转换文本 > 语料库 > DTM 等时效果非常好。我能够很好地计算和审查单词的共现。

我想更好地使用 tidytext,因此我想了解它是如何工作的以及我哪里出错了。

感谢任何建议!谢谢你。

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

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

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

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