至于包tm,您需要根据其文档的这一部分使用外部标记器:http://tm.r-forge.r-project.org/faq.html#Bigrams
但这应该非常简单,并且有很多方法可以实现您的目标。
3-gram 分析:
library(tau)
temp <- "I would gladly pay you Tuesday for a hamburger today."
textcnt(temp, method="ngram", n=3L, decreasing=TRUE)
这是创建混淆矩阵的方式:
library(MASS)
iris.lda <- lda(Species ~ . , data = iris)
table(predict(iris.lda, type="class")$class, iris$Species)
如果您需要长度为 3 的标记(在术语文档矩阵中),您可以使用 3-gram 标记器 (n = 3)。参见例如http://tm.r-forge.r-project.org/faq.html#Bigrams。
您可以使用字典参数仅存储您的选择:
yourTokenizer <- function(x) RWeka::NGramTokenizer(x, Weka_control(min = 3, max = 3))
TermDocumentMatrix(crude, control = list(tokenize = yourTokenizer, dictionary = yourDictionary))
tm 文档中的相应示例是:
library("RWeka")
library("tm")
data("crude")
BigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 2, max = 2))
tdm <- TermDocumentMatrix(crude, control = list(tokenize = BigramTokenizer))
inspect(tdm[340:345,1:10])