3

これはかなり簡単なはずだと思います。現在、正規表現に変換したグロブ形式の用語の辞書があります。それらを正規表現に変換した理由は、tm パッケージがそれらでしか機能しないと思うからです。それはいいです。しかし、複数の辞書用語を渡して termDocumentMatrix をサブセット化する方法がわかりません。これに対するもう 1 つのひねりは、辞書の用語には複数の長さがあるということです。1 語、2 語、3 語の長さがあります。

以下は私の現在のコードです。

#load libraries
library(tm)
library(stringi)
#Load corpus crude part of tm package
data(crude)
#make tokenizer to account for multi-word dictionaries
myTokenizer <-
function(x)
unlist(lapply(ngrams(words(x), 1:3), paste, collapse = " "), 
use.names =   FALSE)
#make TermDocumentMatrix
tdm<-TermDocumentMatrix(crude, control=list(tokenizer=myTokenizer))
#Make dictionary of regular expressions
dict<-c('^also$', '^told reuters$', '^an emergency$', '^in world oil$')
#This is what I am working with
inspect(
tdm[sapply(dict, function(x) stri_detect_regex(tdm$dimnames$Terms,    
pattern=x)),]
)
4

1 に答える 1