Znalazłem sposób użycia bigrams zamiast pojedynczych tokenów w macierzy term-document. Rozwiązanie zostało postawione na stackoverflow tutaj: findAssocs for multiple terms in Rbigrams zamiast pojedynczych słów w macierzy termdocument przy użyciu R i Rweka
Pomysł wychodzi coś takiego:
library(tm)
library(RWeka)
data(crude)
#Tokenizer for n-grams and passed on to the term-document matrix constructor
BigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 2, max = 2))
txtTdmBi <- TermDocumentMatrix(crude, control = list(tokenize = BigramTokenizer))
Jednak ostateczna linia daje mi błąd:
Error in rep(seq_along(x), sapply(tflist, length)) :
invalid 'times' argument
In addition: Warning message:
In is.na(x) : is.na() applied to non-(list or vector) of type 'NULL'
Jeśli usunąć tokenizera od w ostatniej linii tworzy regularne tdm, więc domyślam się, że problem tkwi gdzieś w funkcji BigramTokenizer, chociaż jest to ten sam przykład, który podaje strona Weka: http://tm.r-forge.r-project.org/faq.html#Bigrams.
To działa dobrze dla mnie; Nie mogę odtworzyć Twojego komunikatu o błędzie. Możesz spróbować zaktualizować swoje pakiety i R, aby upewnić się, że używasz najnowszej wersji wszystkiego. – Ben
Jeszcze raz dziękuję za radę. Nadal dostaję komunikat o błędzie po sprawdzeniu mojej wersji R i update.packages. Zastanawiam się, czy jest to problem z os, ponieważ często napotykam na problemy z Javą w systemie OS X, więc może to wpływa na Weka? Spróbuję na moim komputerze z systemem Windows. Spróbuję też: http://stackoverflow.com/questions/8898521/finding-2-3-word-phrases-using-r-tm-package – ds10
Tak, następnym krokiem jest upewnienie się, że twoja instalacja Java wszystko jest w porządku (a to może być dość frustrujące!). Nie używam OSX, może nie jest tak źle, ale Windows nie ułatwia ... – Ben