Компиляция и анализ Корпуса с помощью R и koRpus

Я изучаю литературу, потерянную в науках о данных. Я пытаюсь проанализировать корпус из 70 .txt-файлов, которые все находятся в одном каталоге.

Моя конечная цель - получить таблицу, содержащую имя файла (или что-то подобное), количество предложений и слов, показатель читаемости по Флеш-Кинкейду и показатель лексического разнообразия MTLD.

Я нашел пакеты koRpus и tm (и tm.plugin.koRpus) и попытался понять их документацию, но пока не зашел. С помощью RKward IDE и плагина koRpus-Plugin мне удается получать все эти показатели по одному файлу за раз, и я могу вручную скопировать эти данные в таблицу, но это очень громоздко и требует много работы.

До сих пор я пробовал эту команду, чтобы создать корпус моих файлов:

simpleCorpus(dir = "/home/user/files/", lang = "en", tagger = "tokenize",
encoding = "UTF-8", pattern = NULL, recursive = FALSE, ignore.case = FALSE, mode = "text", source = "Wikipedia", format = "file",
mc.cores = getOption("mc.cores", 1L))

Но я всегда получаю ошибку:

Error in data.table(token = tokens, tag = unk.kRp):column or argument 1 is NULL).

Если бы кто-то мог помочь абсолютному новичку в R, я был бы невероятно благодарен!

3 ответа

Решение

Я нашел решение с помощью unDocUMeantIt, автора пакета (спасибо!). Пустой файл в каталоге вызвал ошибку, после удаления мне удалось все запустить.

Я предлагаю вам взглянуть на нашу виньетку для quanteda, Digital Humanities Use Case: репликация анализа из анализа текста с помощью R для студентов, изучающих литературу, которая повторяет книгу Мэтта Джокера с тем же названием.

Для того, что вы ищете выше, будет работать следующее:

require(readtext)
require(quanteda)

# reads in all of your texts and puts them into a corpus
mycorpus <- corpus(readtext("/home/user/files/*"))

# sentence and word counts
(output_df <- summary(mycorpus))

# to compute Flesch-Kincaid readability on the texts
textstat_readability(mycorpus, "Flesch.Kincaid")

# to compute lexical diversity on the texts
textstat_lexdiv(dfm(mycorpus))

textstat_lexdiv() Функция в настоящее время не имеет MLTD, но мы работаем над этим, и у нее есть еще полдюжины других.

Это очень всеобъемлющее прохождение... Я бы пошагово прошел через это на вашем месте.

http://tidytextmining.com/tidytext.html

Другие вопросы по тегам