在TDM中加入相邻的单词(标记)以进行整理分析

时间:2017-03-23 09:21:21

标签: r token text-analysis

我的文档包含类似于以下内容的字符串:

    textForAnalysis <- c("non-ifrs earnings numbers are report to be...")

我进入了一个语料库

    textCorpus <- Corpus(VectorSource(textForAnalysis))

然后转换为TDM

    textTDM <- TermDocumentMatrix(textCorpus)

然后将TDM转换为整洁的格式进行分析

    textTidy <- tidy(textTDM)

当我打印文本时,一切正常,

    textTidy

> textTidy
# A tibble: 6 × 3
      term document count
     <chr>    <chr> <dbl>
1      are        1     1
2 earnings        1     1
3     ifrs        1     1
4      non        1     1
5  numbers        1     1
6   report        1     1

除此之外,我想保留&#34;非ifrs&#34; item作为单个标记(单词)。我不想将&#34;非ifrs&#34;短语进入&#34;非&#34;和&#34; ifrs&#34;。

如何保留相邻的字词,例如&#34;非IFRS&#34;作为单个&#34;术语&#34; (非ifrs)在我的分析/ TDM中?

1 个答案:

答案 0 :(得分:1)

TermDocumentMatrix的文档中有一段可能是关键:

  

这对于SimpleCorpus来说是不同的。在这种情况下,所有选项都在一次通过中以固定顺序处理,以提高性能。它总是使用Boost Tokenizer(通过Rcpp)并且不使用自定义函数作为选项参数。

您有作业

textCorpus <- Corpus(VectorSource(textForAnalysis))

class(textCorpus)可以看出,该变量是SimpleCorpus的实例。

请使用 V 语料库代替语料库:

textCorpus <- VCorpus(VectorSource(textForAnalysis))

现在您可以应用所有必要的控制参数:

textTDM <- TermDocumentMatrix(
  textCorpus, 
  control=list(removePunctuation=list(preserve_intra_word_dashes = TRUE))
)

结果是:

(textTidy <- tidy(textTDM))
# A tibble: 5 × 3
      term document count
     <chr>    <chr> <dbl>
1      are        1     1
2 earnings        1     1
3 non-ifrs        1     1
4  numbers        1     1
5   report        1     1