我想知道如何结合n-gram。 例如,如果我们有bab这个词, 我想基于的计算一个值 2gram(ba)= 2.969,2gram(ab)= 2.77。 我有两个问题: 1.理论上如何做到这一点? 2.在实践中,是否存在有效的R实现? 我想这个解决方案涉及到sparce矩阵,如果不小心,可能效率很低。
答案 0 :(得分:0)
您可以使用ngram
包执行此操作(标记化由非常高效的C代码处理)
#install.packages("ngram")
library(ngram)
str <- "bab"
ng <- ngram(splitter(str, split.char = TRUE))
给出了:
> get.ngrams(ng)
#[1] "b a" "a b"
您也可以通过以下方式获取频率表:
> get.phrasetable(ng)
# ngrams freq prop
#1 b a 1 0.5
#2 a b 1 0.5