Извлечение основной части текста из исследовательских статей;Несколько Попыток Методы - PullRequest
0 голосов
/ 23 октября 2019

Мне нужно извлечь текст из моего корпуса для анализа текста, так как мой код теперь содержит ссылки, которые смещают мои результаты. Все кодирование выполняется в R с использованием RStudio. Я испробовал много методов.

У меня есть код интеллектуального анализа текста (из которых только первый бит включен ниже), но недавно выяснилось, что простого интеллектуального анализа текстового набора научных статей недостаточно, так как справочный раздел будет смещатьРезультаты;Только справочные разделы могут предоставить другой анализ, который был бы бонусом.

РЕДАКТИРОВАТЬ: возможно, существует пакет R, о котором я не знаю

Мой первоначальный ответ заключался в том, чтобы очистить текстовые форматы послеПреобразование из PDF в текст с помощью команд Regex в Quanteda. В качестве справки я намеревался следовать: https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1005962&rev=1. Их метод вводит меня в заблуждение не только в кодировании параллельного кода регулярного выражения, но и в том, как реализовать распознавание последнего ссылочного раздела, чтобы избежать обрезания частей текста, когда перед этим разделом появляется «ссылка»;Я связывался с их командой, но жду, чтобы узнать больше об их коде, так как похоже, что они сейчас используют оптимизированную программу.

PubChunks и LAPDF-текст были моими следующими двумя вариантами, последний из которых упоминаетсяв статье выше. Чтобы использовать пакет PubChunks, мне нужно преобразовать все мои pdf (теперь преобразованные в текстовые) файлы в XML. Это должно быть просто, только пакеты, которые я нашел (fileToPDF, pdf2xml, trickypdf), не работают;похоже, это проблема внутри R(Кодирование, относящееся к trickypdf, приведено ниже).

Для LAPDF-текста: ... [см. Правку] ... кажется, что код работает неправильно. Есть также очень ограниченные ресурсы для этого пакета с точки зрения руководств и т. Д., И они сместили свое внимание на более крупный пакет, используя другой язык, который включает в себя текст LAPDF.

РЕДАКТИРОВАТЬ: я установил Java 1.6(SE 6) и Maven 2.0 затем запустили установщик LAPDF-текста, который, казалось, работал. При этом у меня все еще есть проблемы с этим процессом и командами mvn, распознающими папки, хотя я продолжаю работать через него.

Я предполагаю, что есть кто-то еще, так как есть связанные исследовательские работы с такой же неопределеннойпроцессы, которые делали это раньше и также пачкали свои руки. Любые рекомендации приветствуются.

Приветствия

    library(quanteda)
    library(pdftools)
    library(tm)
    library(methods)
    library(stringi) # regex pattern
    library(stringr) # simpler than stringi ; uses stringi on backend

    setwd('C:\\Users\\Hunter S. Baggen\\Desktop\\ZS_TestSet_04_05')
    files <- list.files(pattern = 'pdf$')
    summary(files)
    files

    # Length 63 
    corpus_tm <- Corpus(URISource(files),
                 readerControl = list(reader = readPDF()))
    corpus_tm
    # documents 63
    inspect(corpus_tm)
    meta(corpus_tm[[1]])
    # convert tm::Corpus to quanteda::corpus
    corpus_q <- corpus(corpus_tm)
    summary(corpus_q, n = 2)
    # Add Doc-level Variables here *by folder and meta-variable year
    corpus_q
    head(docvars(corpus_q))
    metacorpus(corpus_q)
    #_________

    # extract segments ~ later to remove segments
    # corpus_segment(x, pattern, valuetype, extract_pattern = TRUE)
    corpus_q_refA <- corpus_reshape(corpus_q, to = "paragraphs", showmeta         = TRUE)
    corpus_q_refA
    # Based upon Westergaard et al (15 Million texts; removing references)
    corpus_q_refB <- corpus_trim(corpus_q, what = c('sentences'),         exclude_pattern = '^\[\d+\]\s[A-Za-z]')
    corpus_q_refB # ERROR with regex above

    corpus_tm[1]

    sum(str_detect(corpus_q, '^Referen'))

    corpus_qB <- corpus_q
    RemoveRef_B <- corpus_segment(corpus_q, pattern = 'Reference', valuetype = 'regex')
    cbind(texts(RemoveRef_B), docvars(corpus_qB))

    # -------------------------
    # Idea taken from guide (must reference guide)
    setGeneric('removeCitations', function(object, ...)         standardGeneric('removeCitations'))
    'removCitations'
    setMethod('removeCitations', signature(object = 'PlainTextDocument'),
      function(object, ...) {
        c <- Content(object)
        # remove citations tarting with '>'
        # EG for > : citations <- grep('^[[:blank:]]*>.*', c)  if         (length(citations) > 0)  c <- c[-citations]
        # EG for -- : signatureStart <- grep('^-- $', c)  if         (length(signatureStart) > 0)  c <- c[-(signatureStart:length(c))]
        # using 15 mil removal guideline
        citations <- grep('^\[\d+\]\s[A-Za-z]')
      }


    # TRICKY PDF download from github
    library(pubchunks)
    library(polmineR)
    library(githubinstall)
    library(devtools)
    library(tm)
    githubinstall('trickypdf') # input Y then 1 if want all related packages
    # library(trickypdf)
    # This time suggested I install via 'PolMine/trickypdf'
    # Second attempt issue with RPoppler
    install_github('PolMine/trickypdf')
    library(trickypdf) # Not working
    # Failed to install package 'Rpoppler' is not available for R 3.6.0

Недостаточно краткого описания проблемы RPoppler выше исходного описания.

ОБНОВЛЕНИЕ: Достигнув нескольких исследовательских групписследователи TALN-UPF ответили мне и предоставили мне pdfx java-программу, которая позволила мне легко конвертировать мои pdf-файлы в xml. Конечно, теперь я узнаю, что PubChunks создается с его родственной программой, которая извлекает xmls из поисковых систем и поэтому для меня мало что дает. Это, как говорится, группа TALN-UPF, я надеюсь, посоветует, могу ли я извлечь текст каждого текста через их другие программы (д-р Inventor и Grobid). Если это возможно, то все будет сделано. Конечно, если нет, я вернусь на RegEx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...