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

koRpus的tokenize处理Word文件夹时无法分文件计算可读性得分问题

问题原因

你的操作存在两个核心疏漏:

  1. koRpus::tokenize() 不支持直接传入文件夹路径批量读取多文件,传入目录时函数只会识别并读取路径下第一个可解析的文本文件,这就是你生成的krp.text对象远小于文件夹总大小、最终仅返回1组可读性得分的根本原因。
  2. tokenize() 原生仅支持解析纯文本文件,无法直接读取.doc/.docx格式的Word文档,如果你没有提前做格式转换,函数甚至会直接跳过无法解析的Word文件。
操作步骤

按以下流程即可逐文件计算可读性得分:

  • 前置准备:将文件夹内所有Word文件批量转换为UTF-8编码的纯文本(.txt)文件,存放在原目录下;如果不想手动转格式,也可以用支持读取Word文档的包先把文本内容读入R环境再传入tokenize。
  • 第一步:加载依赖包,获取目录下所有目标文件的完整路径
library(koRpus)
# 替换为你的实际文件夹路径
target_dir <- "/Users/gdballingrud/Desktop/WPSCASES 1/"
# 提取目录下所有txt文件的路径,如果你处理的是其他格式修改pattern参数即可
file_paths <- list.files(
  path = target_dir,
  pattern = "\\.txt$",
  full.names = TRUE,
  recursive = FALSE
)
  • 第二步:逐文件执行分词、可读性计算,用列表存储结果
# 批量遍历所有文件
result_list <- lapply(file_paths, function(path) {
  # 单文件分词
  tok_obj <- tokenize(
    txt = path,
    lang = "en"
  )
  # 计算单文件可读性得分
  rd_obj <- readability(tok_obj)
  # 给结果绑定文件名,方便后续区分
  rd_obj@desc$source_file <- basename(path)
  return(rd_obj)
})
  • 第三步:整理结果为结构化数据框
# 提取每个文件的指标值,合并为统一表格
final_result <- do.call(rbind, lapply(result_list, function(obj) {
  data.frame(
    file_name = obj@desc$source_file,
    as.list(obj@readability),
    check.names = FALSE
  )
}))

执行完成后final_result中每一行对应一个独立文件的可读性得分,你需要的LIX、Kuntzsch's Text-Redundanz-Index(结果中列名为TRI)都在列中,直接查看或导出即可。

补充说明
  • 如果选择直接读取Word文件不转txt,可在读取文本内容后调用tokenize时设置参数format = "obj",告知函数传入的是文本对象而非文件路径。
  • 不需要额外给readability()传参数指定计算指标,函数默认会计算所有内置的可读性度量,包含你提到的两个特殊指标。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.15 16:16:00