java - 将多个 .doc 合并到一个 .csv 中

标签 java python linux r csv

我认为这是一个相当不寻常的问题,因为我在任何地方都找不到任何答案。我有大约 100000 个单词文档(即临床报告信 - 所以它们都是自由文本,带有逗号、格式等),它们都存储在同一个文件夹中。我希望将它们合并到一个电子表格中(最好是 .csv),以便每个 .doc 占据 .csv 的一行。

为了使问题复杂化,每个 .doc 的前 6 个字符包括每个文件的 ID 号(即“123456report.doc”-“报告”名称也可能具有可变长度和字符:即“123456John Smith 报告”。 doc”或“123457Jack Ryan Rep 01 01 2013.doc”)。最初我将 .doc 存储在包含 ID 号的各个文件夹中(实际上它是一个子文件夹系统,文件夹名称的串联给出了 .doc 的 ID 号,然后我设法将其添加到文件名中) -让我知道这是否有用,我可以更详细地解释)。

因此,我需要的 .csv 最终结构是:

ID, Clinical report
123456, clinical text in document 123456report1.doc
123457, clinical text in document 123457report2.doc
123458, clinical text in document 123458report3.doc
...

请注意,ID 可能会在数据表中重复(即,如果一名患者接受多次检查,则为该患者发布多份报告)并且非常重要,因为允许我将此 ID 与包含其他数据的其他电子表格进行交叉引用。

我不确定这是否简单(我想可能不简单),但我不知道从哪里开始。我什至不确定实现此目标的最佳环境,因此将不胜感激任何提示! 即使这包括获取一些专为此类任务设计的软件。

非常感谢, 马可

最佳答案

R 中,您可以使用循环来处理充满文件的目录,并在循环内使用 qdap 包中的 read.transcript > 读取文件并处理它们。 qdap 也会为您做一些文本分析。该包的作者经常在 SO 上,您可能会从他那里得到更完整的答案。但是阅读 qdap 可能是您开始一个坚实的开始所需要的。关于制作循环和处理文件的细节的问题适合另一个问题(尽管 SO 上已经有很多这样的问题,你可能可以通过搜索 SO 找到你需要的东西)。但这里有一个简单的循环结构可以让您了解:

files <- list.files(pattern = "\\.(docx|DOCX)")
files.noext <- substr(basename(files), 1, nchar(basename(files)) - 4)
out.files <- paste(files.noext, "csv", sep = "")

for (i in 1:length(files)) {
    # process the files here with qdap, accumulating the results into a new
    # structure to be determined; write out as csv
    # you might need two passes, one to unpack the docx, then one to assemble them
    # into a single structure for further analysis
    }

关于java - 将多个 .doc 合并到一个 .csv 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19741289/

相关文章:

java - 如何在 Jlist 中添加两列?

python - 为什么 random() * random() 与 random() ** 2 不同?

linux - 如何在2x2网格布局中使用i3窗口管理器?

linux - openSUSE Linux : No Provider for libglib-dev libgcrypt-dev found

java - 有什么方法可以隐藏 JavaFX 上旋转器的文本字段吗?

java - 将 JSON 文件写入 UTF-8 编码

java - 将 maven 依赖项从 spring 3.0 更新到 3.1.1 并将 hibernate 3.6 更新到 4.0 后。很多错误即将到来

python - 使用 pycharm 调试 console_script

python - 需要拆分字典

linux - 无法使用 Amazon CloudWatch 监控脚本监控带缓冲区和缓存的 Amazon Linux 内存