hey*_*ien 5 text-processing nlp r prediction n-gram
我已经预处理了文本数据到语料库中我现在想要建立一个基于前两个单词的预测模型(所以我认为3克模型?).基于我对我读过的文章的理解,以下是我在考虑如何做到这一点:
第1步:输入两个单词短语我们希望预测下一个单词
# phrase our word prediction will be based on
phrase <- "I love"
Run Code Online (Sandbox Code Playgroud)
第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)
Run Code Online (Sandbox Code Playgroud)
下一步是我遇到困难的地方.从概念上讲,我认为我应该将我的3-gram子集化为仅包括以"我喜欢"开头的三个单词组合.然后,我应该保持最高频率3克.例如,如果"我爱你"在我的语料库中出现12次并且"我爱啤酒"出现了15次,那么"啤酒"作为下一个单词的概率高于"爱",因此该模型应该返回前者.这是正确的方法,如果是这样,我如何以编程方式创建这样的东西?我的threegram_freq对象似乎是带有字符属性的数字类,我不完全理解它是什么.是否可以使用正则表达式仅包含以"我爱"开头的元素,然后以最高频率提取3-gram的第3个单词?
谢谢!
| 归档时间: |
|
| 查看次数: |
1392 次 |
| 最近记录: |