结合R中的n-gram

时间:2016-10-26 11:59:56

标签: r

我想知道如何结合n-gram。 例如,如果我们有bab这个词, 我想基于的计算一个值 2gram(ba)= 2.969,2gram(ab)= 2.77。 我有两个问题: 1.理论上如何做到这一点? 2.在实践中,是否存在有效的R实现? 我想这个解决方案涉及到sparce矩阵,如果不小心,可能效率很低。

1 个答案:

答案 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