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

如何在R语言中提取ODT文件文本?解决read_odt()单词合并问题

解决textreadr::read_odt()提取ODT文本时单词无空格的问题

方法1:正则表达式修复拼接文本

如果提取后的文本是英文单词因大小写拼接在一起(比如HelloWorld),可以用正则在大写字母前插入空格:

library(textreadr)
# 读取ODT文本
raw_text <- read_odt("your_target_file.odt")
# 用正则修复空格:小写字母后接大写字母时,在大写字母前加空格
fixed_text <- gsub("(?<=[a-z])([A-Z])", " \\1", raw_text, perl = TRUE)

这个方法适合绝大多数英文文本的情况,简单高效。

方法2:换用officer包读取ODT

officer包对ODT文档的结构解析更严谨,能保留原始文本的空格和排版逻辑:

library(officer)
# 读取ODT文档
odt_doc <- read_odt("your_target_file.odt")
# 提取整理后的文本
fixed_text <- docx_summary(odt_doc)$text

如果你的ODT包含表格、分栏等复杂格式,这个方法的适配性更好。

方法3:直接解析ODT的XML结构(进阶)

ODT本质是压缩的XML文件,你可以直接解析核心内容文件来精确控制文本提取:

library(xml2)
# 临时解压ODT文件
unzip("your_target_file.odt", exdir = tempdir())
# 读取ODT的核心内容XML
content_xml <- read_xml(file.path(tempdir(), "content.xml"))
# 提取所有文本节点并拼接(自动保留空格)
text_elements <- xml_find_all(content_xml, "//text:t")
fixed_text <- paste(xml_text(text_elements), collapse = " ")

这个方法适合极端复杂的ODT文档,能完全自定义提取逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 23:17:34