Error in `mutate()`: ℹ In argument: `textrank.key = map(hire_words$word_tag, extract_keywords)`. Caused by error in `map()`: ℹ In index: 1. ℹ With name: text. Caused by error in `keywords()`: ! 不是所有的"keywords" %in% class(jiebar)都是TRUE
时间: 2024-03-14 12:47:15 浏览: 59
最终版代码:Kaggle:纽约的士旅程数据简要分析.zip_R语言_kaggle r语言_数据分析 R_纽约数据
根据你提供的错误信息,问题出在`keywords()`函数上,因为它提示`! 不是所有的"keywords" %in% class(jiebar)都是TRUE`。这个错误通常是由于`keywords()`函数的参数传递有误导致的。我建议你重新检查一下`keywords()`函数的定义和调用方式,确保所有参数都正确传递。
根据你的代码,`keywords()`函数是在`extract_keywords()`函数中被调用的,所以需要检查该函数的定义和调用方式。你可以使用以下代码来查看`extract_keywords()`函数的定义:
```
# 查看函数定义
extract_keywords
```
在函数定义中检查`keywords()`函数的参数,确保传递了所有必要的参数。如果是传递的`jieba`参数导致的错误,那么你需要检查`jieba`对象的定义,确保它符合`keywords()`函数的要求。例如,如果`jieba`对象是一个列表,那么你可以使用以下代码来转换它:
```
# 将 jieba 对象转换为一个分词器函数
wk <- worker(byword = TRUE, user = NULL, stop_word = NULL, char = TRUE)
```
这样转换后的`wk`对象就可以作为`keywords()`函数的参数了。然后你可以像下面这样修改`extract_keywords()`函数:
```
# 修改 extract_keywords() 函数
extract_keywords <- function(dt) {
textrank_keywords(dt$word, relevant = str_detect(dt$tag, "^n"), ngram_max = 2) %>%
keywords(jieba = wk) # 添加 jieba 参数
}
```
修改后的函数将在调用`keywords()`函数时,传递一个符合要求的`jieba`参数,从而避免出现参数传递错误导致的问题。
阅读全文