我的文档包含类似于以下内容的字符串:
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中?
答案 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