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

DocumentTermMatrix长文本漏检单词,单独取对应页面可检测的问题排查

排查DocumentTermMatrix漏检关键词的思路

我用DocumentTermMatrix在32页的长文档里匹配关键词列表,大部分词都能识别,但有少数单词缺失——比如第7页的“insolvency”,处理完整文档时找不到,单独提取第7页文本(text <- text[7])却能成功检测到。没法复现最小示例,求排查方向。

以下是我的脚本示例:

library(fastpipe)
library(openxlsx)
library(tm)

`%>>%` <- fastpipe::`%>>%`

source("cleanText.R") # 自定义文本清洗函数

keywords_xlsx <- read.xlsx(paste0(getwd(),"/Keywords.xlsx"),
                           sheet = "all",
                           startRow = 1,
                           colNames = FALSE,
                           skipEmptyRows = TRUE,
                           skipEmptyCols = TRUE)

keywords <- keywords_xlsx[1] %>>%
  tolower(as.character(.[,1]))

# 自定义PDF读取函数
read <- readPDF(control = list(text = "-layout"))

# 提取PDF文本
report <- "my_report.pdf"
document <- Corpus(URISource(paste0("./Annual reports/", report)), readerControl = list(reader = read))
text <- content(document[[1]]) 

text <- cleanText(report, text) # 清洗文本

# text <- text[7] # 单独提取第7页就能找到目标词!完整文档则不行

# 创建语料库  
text_corpus <- Corpus(VectorSource(text))

# 生成文档-词矩阵
matrix <- t(as.matrix(inspect(DocumentTermMatrix(text_corpus,
                                                 list(dictionary = keywords,
                                                      list(wordLengths=c(1, Inf))
                                                 )
))))
  
words <- sort(rowSums(matrix),decreasing=TRUE) 
df <- data.frame(word = names(words),freq=words)

排查思路

  • 检查cleanText()的处理差异:对比完整文档和单页模式下,第7页文本清洗前后的内容,看是否长文本处理时,换行、分页符或特殊字符导致“insolvency”被拆分、替换或删除,比如函数在处理长列表时触发了不同分支逻辑。
  • 验证分词与语料库构建:手动提取完整文档中清洗后的第7页文本,单独生成语料库并匹配关键词,确认是语料库整体构建的问题,还是单页内容本身的问题。
  • 核对关键词格式:打印keywords变量,确认“insolvency”是全小写且无多余空格/特殊字符,确保和文本中的词格式完全匹配。
  • 检查PDF读取的内容差异:对比完整文档模式下text[7]和单独提取第7页时的原始文本(清洗前),看是否存在编码异常、字符拆分(比如跨换行的单词被拆成两部分)等问题。
  • 简化矩阵生成步骤:去掉inspect()直接生成矩阵(as.matrix(DocumentTermMatrix(...))),因为inspect()会截断长输出,可能导致转置和求和时丢失数据。
  • 确认文本结构完整性:打印length(text)和text[7]的内容,确保完整文档模式下文本是按页拆分的列表,第7页内容没有被意外合并或修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 09:42:04