我想构建一个 n-gram '字母文档矩阵',它基本上使用最多 n 个字母的字母序列,而不是典型的单词。这是我想要实现的简化示例:
> letterDocumentMatrix(c('ea','ab','ca'), c('sea','abs','cab'))
[,sea] [,abs] [,cab]
[ea,] TRUE FALSE FALSE
[ab,] FALSE TRUE TRUE
[ca,] FALSE FALSE TRUE
这种操作有名称吗?是否有任何预建函数可以处理这个问题?
最后,我用grepl尝试了outer,但无济于事:
> outer(c('ea','ab','ca'), c('sea','abs','cab'), grepl)
[,1] [,2] [,3]
[1,] TRUE FALSE FALSE
[2,] TRUE FALSE FALSE
[3,] TRUE FALSE FALSE
Warning message:
In FUN(X, Y, ...) :
argument 'pattern' has length > 1 and only the first element will be used
似乎外部将整个第一个参数传递给 grepl,而不是一次一个条目,导致 grepl 只搜索第一个术语,在这种情况下是“a”。