我已将预处理的文本数据预处理到语料库中我现在想要基于之前的2个单词构建预测模型(所以我认为3克模型?)。基于我对我读过的文章的理解,以下是我在考虑如何做到这一点:
步骤1:输入两个单词短语,我们希望预测
的下一个单词# phrase our word prediction will be based on
phrase <- "I love"
第2步:计算3克频率
library(RWeka)
threegramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min=3, max=3))
dtm_threegram <- DocumentTermMatrix(corpus, control=list(tokenize=threegramTokenizer))
threegram_freq <- sort(colSums(as.matrix(dtm_threegram)), decreasing = TRUE)
下一步是我陷入困境。从概念上讲,我认为我应该将我的3-gram子集化为仅包括以“我喜欢”开头的三个单词组合。然后,我应该保持最高频率3克。例如,如果“我爱你”在我的语料库中出现12次并且“我爱啤酒”出现了15次,那么“啤酒”作为下一个单词的概率高于“爱”,因此该模型应该返回前者。这是正确的方法,如果是这样,我如何以编程方式创建这样的东西?我的threegram_freq
对象似乎是带有字符属性的数字类,我不完全理解它是什么。是否可以使用正则表达式仅包含以“我喜欢”开头的元素,然后以最高频率提取3-gram的第3个单词?
谢谢!