有没有办法将 Word docx 中标题下突出显示的文本子集提取到 R 中的数据帧?
我有一组word文档,其标题为PID、X和Y,在PID下有一个6个字符的标识符,在X下有一系列单词,其中一些突出显示,在Y下有不同的系列一些单词突出显示。仅需要提取突出显示的单词。
生成的 Excel 应该有 PID、X、Y 作为列。每个 PID 应该在 X 和 Y 中具有来自同一文档的相应值。任何想法表示赞赏!
Word 文档示例:
|PID | X |是 |AD9212|米饭、面包|红色
我尝试了 docx_summary 但没有提取格式信息。
正如 @guasi 所建议的,您可以通过 HTML 采取路线(将文档另存为
.htm
)。这样,突出显示的部分将包含在 <span mso-highlight=...>
标签中,您可以使用这些标签,例如使用 CSS 选择器通过 {rvest} 进行收获,如下所示:
library(rvest)
paras <- read_html('text.htm') |>
## get word paragraphs via CSS selectors:
html_nodes('body p') |>
## remove empty paras:
Filter(f = \(para) html_text(para) != '')
## get PID from para following para containing 'PID':
PID <- paras[grep('PID', paras) + 1] |>
html_text()
## get highlighted items:
highlights <-
paras[grep('X|Y', paras) + 1] |>
Map(f = \(para) para |>
html_nodes('[style*=mso-highlight]') |>
html_text() |>
paste(collapse = ', ')
)
## name and convert to data frame:
c(PID, highlights) |>
setNames(nm = c('PID', 'X', 'Y')) |>
list2DF()
PID X Y
1 AD9212 rice, bread red