我有 MS Word 文档的混合文件类型集合。有些文件是 *.doc,有些是 *.docx。我正在学习使用tm
我(或多或少*)成功创建了一个由 *.doc 文件组成的语料库:
ex_eng <- Corpus(DirSource('~/R/expertise/corpus/english'),
readerControl=list(reader=readDOC,
language='en_CA',
load=TRUE));
此命令不处理 *.docx 文件。我想我需要一个不同的读者。从本文,我知道我可以编写自己的(鉴于我目前没有的 .docx 格式的良好理解)。
readDOC 阅读器使用antiword解析 *.doc 文件。是否有类似的应用程序可以解析 *.docx 文件?
或者更好的是,是否已经有一种使用 tm 创建 *.docx 文件语料库的标准方法?
* 或多或少,因为虽然文件进入并且可读,但我对每个文档都收到此警告:In readLines(y, encoding = x$Encoding) : incomplete final line found on 'path/to/a/file.doc'
.docx
文件是压缩的 XML 文件。如果你执行这个:
> uzfil <- unzip(file.choose())
然后选择一个.docx
文件放在你的目录中,你会得到:
> str(uzfil)
chr [1:13] "./[Content_Types].xml" "./_rels/.rels" "./word/_rels/document.xml.rels" ...
> uzfil
[1] "./[Content_Types].xml" "./_rels/.rels" "./word/_rels/document.xml.rels"
[4] "./word/document.xml" "./word/theme/theme1.xml" "./docProps/thumbnail.jpeg"
[7] "./word/settings.xml" "./word/webSettings.xml" "./word/styles.xml"
[10] "./docProps/core.xml" "./word/numbering.xml" "./word/fontTable.xml"
[13] "./docProps/app.xml"
这也会以静默方式将所有这些文件解压到您的工作目录中。这"./word/document.xml"
文件包含您要查找的单词,因此您可以使用 XML 包中的 XML 工具之一来读取它们。我猜你会做一些类似的事情:
library(XML)
xtext <- xmlTreeParse(unz(uzfil[4]), useInternalNodes = TRUE) )
实际上,您可能需要将其保存到临时目录并将该路径添加到文件名“./word/document.xml”。
您可能想使用@GaborGrothendieck 在此答案中提供的进一步步骤:如何使用 R 从 CrossRef 中提取 xml 数据?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)