You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R语言Bing词典统计酒店评论积极词时遇函数返回错误求助

问题解决:Bing词典积极词统计错误修正

错误原因

你遇到的Error: no function to return from, jumping to top level是因为原代码逻辑完全混乱:

  • 定义的函数参数id,review,count从未使用,反而在函数内部重复生成变量
  • for循环未用大括号包裹代码块,导致循环仅执行第一行(且每次都只处理第一条评论)
  • 不必要地构建语料库Corpus,统计词频无需这一步
  • 函数整体冗余,完全没必要用自定义函数实现需求

修正方案

R是向量化语言,无需写循环,直接用向量操作即可高效完成统计。以下是完整可运行代码:

1. 加载必要包

library(stringr)
# 若使用tidytext自带的Bing词典,加载tidytext包
library(tidytext)

2. 获取Bing积极词列表

# 从tidytext提取Bing词典中的积极词
bing_pos <- get_sentiments("bing") %>% 
  filter(sentiment == "positive") %>% 
  pull(word)

# 如果你已经有自己的bing.pos积极词向量,直接跳过上面的代码,使用你的向量即可

3. 处理数据集并统计积极词

# 假设你的数据集是名为reviews的data.frame,包含Reviews列(存储酒店评论)
# 添加评论ID
reviews$id <- 1:nrow(reviews)

# 统计每条评论中的积极词数量:用正则匹配所有积极词
reviews$positive_count <- str_count(
  string = reviews$Reviews,
  pattern = paste(bing_pos, collapse = "|")  # 将积极词拼接成正则表达式,匹配任意一个
)

# 生成最终结果(仅保留需要的列)
result <- reviews %>% select(id, Reviews, positive_count)

# 查看前几条结果
head(result)

说明

  • 该代码直接对整个评论向量进行统计,比循环效率高得多
  • 最终结果result包含你需要的评论ID、评论内容和积极词数量三列
  • 若你的评论中有大小写问题,可在统计前用str_to_lower(reviews$Reviews)统一转为小写,避免漏匹配

内容的提问来源于stack exchange,提问作者ponyo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 05:21:15