Сохраняйте исходное имя файла .docx и данные комментариев при использовании docxtractr - PullRequest
1 голос
/ 17 июня 2019

У меня есть 1000-рядный фрейм данных (считанный из файла CSV).Каждая строка имеет 1 путь .docx + имя файла в одном столбце и метаданные для этого документа в других столбцах.Мне нужно извлечь КОММЕНТАРИИ из файлов .docx, затем прикрепить имя файла и метаданные для исходного .docx к каждой извлеченной строке комментария.Конечной целью является аккуратный фрейм данных.

Я могу извлекать и объединять комментарии для всех 1000 файлов, перечисленных в столбце имен файлов .docx, через 'docxtractr', используя:

> document_contents_list <- lapply(file_comments_subset$filename_long, read_docx)
> comments_list <- lapply(document_contents_list, docx_extract_all_cmnts, include_text=TRUE)
> comments_list_joined <- bind_rows(comments_list, .id=NULL)

Файлы обрабатываются и объединяютсякак и ожидалось, но я теряю имена файлов .docx на этапе извлечения.Таким образом, нет способа идентифицировать исходный файл и присоединить метаданные.

Каждый документ имеет разное количество комментариев, поэтому повторное присоединение имен файлов в каждой n-й строке с помощью 'cbind' не вариант.Извлечение отдельных списков с помощью 'map_chr' или аналогичных команд пока не дает мне ничего полезного.Все инструменты Corpus предназначены для основного текста файлов .docx, а не для комментариев, так что это тоже не вариант (насколько я могу судить).Есть предложения?

1 Ответ

1 голос
/ 17 июня 2019

Можно указать имя list, а затем указать .id в map

library(purrr)
map_dfr(set_names(document_contents_list, file_comments_subset$filename_long), 
    docx_extract_all_cmnts, include_text=TRUE, .id = 'name')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...