目的: 我想使用具有复合词或bigrams作为一些关键字的字典创建一个术语文档矩阵。
网络搜索: 作为文本挖掘和 中的tm
包的新手R
,我上网了解如何做到这一点。以下是我找到的一些相关链接:
背景: 其中,我更喜欢NGramTokenizer
在RWeka
包中使用的解决方案R
,但我遇到了一个问题。在下面的示例代码中,我创建了三个文档并将它们放在一个corpus中。请注意,Docs 1
and2
每个都包含两个单词。 Doc 3
只包含一个词。我的字典关键字是两个二元组和一个一元组。
问题:上述链接中的NGramTokenizer
解决方案没有正确计算Doc 3
.
library(tm)
library(RWeka)
my.docs = c('jedi master', 'jedi grandmaster', 'jedi')
my.corpus = Corpus(VectorSource(my.docs))
my.dict = c('jedi master', 'jedi grandmaster', 'jedi')
BigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 1, max = 2))
inspect(DocumentTermMatrix(my.corpus, control=list(tokenize=BigramTokenizer,
dictionary=my.dict)))
# <<DocumentTermMatrix (documents: 3, terms: 3)>>
# ...
# Docs jedi jedi grandmaster jedi master
# 1 1 0 1
# 2 1 1 0
# 3 0 0 0
我期待着为其他两个Doc 3
人付出代价。我有什么误解吗?1
jedi
0