R 从研究文章中提取正文;几种尝试的方法

R 从研究文章中提取正文;几种尝试的方法,r,maven,text-mining,reproducible-research,R,Maven,Text Mining,Reproducible Research,我需要从我的语料库中提取文本主体进行文本挖掘,因为我的代码现在包含引用,这会使我的结果产生偏差。所有编码都使用RStudio在R中执行。我试过很多技巧 我有文本挖掘代码(下面只包括第一部分),但最近发现,仅仅对研究文章语料库进行文本挖掘是不够的,因为参考部分会使结果产生偏差;仅参考章节就可以提供另一种分析,这将是一种额外的好处 编辑:也许有一个R包,我不知道 我最初的反应是在quanteda中使用Regex命令将pdf转换为文本后,清理文本格式。作为参考,我打算遵循:。他们的方法不仅在编码并行正

我需要从我的语料库中提取文本主体进行文本挖掘,因为我的代码现在包含引用,这会使我的结果产生偏差。所有编码都使用RStudio在R中执行。我试过很多技巧

我有文本挖掘代码(下面只包括第一部分),但最近发现,仅仅对研究文章语料库进行文本挖掘是不够的,因为参考部分会使结果产生偏差;仅参考章节就可以提供另一种分析,这将是一种额外的好处

编辑:也许有一个R包,我不知道

我最初的反应是在quanteda中使用Regex命令将pdf转换为文本后,清理文本格式。作为参考,我打算遵循:。他们的方法不仅在编码并行正则表达式代码方面让我困惑,而且在如何实现识别最后一个引用节以避免在该节前面出现“reference”时截断部分文本方面也让我困惑;我已经和他们的团队取得了联系,但我正在等待更多关于他们代码的信息,因为他们现在似乎使用了一个简化的程序

pubcunks和LAPDF text是我接下来的两个选项,后者在上面的文章中被引用。为了利用PubChunks包,我需要将所有pdf(现在已转换为文本)文件转换为XML。这应该很简单,只是我发现的包(fileToPDF、pdf2xml、trickypdf)似乎不起作用;这似乎是R内部的担忧。(下面包括与trickypdf相关的编码)

对于LAPDF文本,…[请参见编辑]。。。代码似乎运行不正常。在指南等方面,这个软件包的资源也非常有限,他们已经将注意力转移到了一个更大的软件包上,使用不同的语言,碰巧包含LAPDF文本

编辑:我安装了Java1.6(SE6)和Maven2.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
库(quanteda)
图书馆(pdftools)
图书馆(tm)
图书馆(方法)
库(stringi)#正则表达式模式
库(stringr)#比stringi更简单;在后端使用stringi
setwd('C:\\Users\\Hunter S.Baggen\\Desktop\\ZS\u TestSet\u 04\u 05')

重复您的问题的文件:您需要帮助删除(或隔离)研究文章的参考部分。这个问题非常广泛,很难回答,因为一般规则可能并不涵盖所有情况。1.你能至少指出(或添加)你试图使用的两篇研究论文吗?或者一些可以作为例子的文章。2.摘要和/或作者摘要部分如何。他们可能会对结果产生影响或偏见。您好,是的,这是正确的。以下是我在早期代码中使用的两篇文章:作者和摘要会对结果产生影响,这一点您肯定是正确的。页眉和页脚也是如此,可以通过Regex删除(假设/f用于换行符)。我基本上是在寻找一种方法,将每篇文章的正文作为语料库的一部分进行文本挖掘,但为了做到这一点,我需要分离正文。
corpus\u段(corp,pattern=“\\s*references\\n”,valuetype=“regex”,pattern\u position=“after”)
此方法用于删除文本后的引用并保留文本。选项
pattern\u position=“before”
将在引用开始后保留所有内容。但这需要pdf以正常方式显示文本。2栏文本,如“职业热应激”中的文本,在pdftools逐行阅读文本时,会删除更多内容。我相信上面文本挖掘文章的作者通过删除以典型引用格式(如[1]开头的句子来避免这个问题等等,并将所有不以小写字母开头且前面有特定语法的句子视为前一段或前一行的延续,从而避免了与列有关的问题。其他来源删除特定长度的空白,并考虑一个新的句子,以避免问题与列。避免在“References”之后删除相关句子的一种方法是删除所有以:^[\d+]\s[A-Za-z]开头的句子。想法?您好,为了澄清这一切,我最终决定手动删除文本正文中未包含的所有部分。这是可行的,因为我有大约2200篇论文。我会注意到A:我使用CERMINE将所有pdf文件转换为.txt,B:然后使用OCR软件(很容易找到,例如Adobe Pro)将pdf文件转换为图像形式。再次重申您的问题:您需要帮助删除(或隔离)研究文章的参考部分。这个问题非常广泛,很难回答,因为一般规则可能并不涵盖所有情况。1.你能至少指出(或添加)你试图使用的两篇研究论文吗?或者一些可以作为例子的文章。2.摘要和/或作者摘要部分如何。他们可能会对结果产生影响或偏见。您好,是的,这是正确的。以下是我在早期代码中使用的两篇文章:作者和摘要会对结果产生影响,这一点您肯定是正确的。页眉和页脚也是如此,可以通过Regex删除(假设/f用于换行符)。我基本上是在寻找一种方法,将每篇文章的正文作为语料库的一部分进行文本挖掘,但为了做到这一点,我需要分离正文。
corpus\u段(corp,pattern=“\\s*references\\n”,valuetype=“regex”,pattern\u position=“after”)
这可以删除文本后面的引用