21

tm パッケージを使用してテキスト分析を実行しています。私の問題は、同じ単語に関連付けられた単語とその頻度のリストを作成することです

library(tm)
library(RWeka)

txt <- read.csv("HW.csv",header=T) 
df <- do.call("rbind", lapply(txt, as.data.frame))
names(df) <- "text"

myCorpus <- Corpus(VectorSource(df$text))
myStopwords <- c(stopwords('english'),"originally", "posted")
myCorpus <- tm_map(myCorpus, removeWords, myStopwords)

#building the TDM

btm <- function(x) NGramTokenizer(x, Weka_control(min = 3, max = 3))
myTdm <- TermDocumentMatrix(myCorpus, control = list(tokenize = btm))

私は通常、頻度範囲内の単語のリストを生成するために次のコードを使用します

frq1 <- findFreqTerms(myTdm, lowfreq=50)

これを自動化して、すべての単語とその頻度を含むデータフレームを取得する方法はありますか?

私が直面しているもう1つの問題は、ドキュメントマトリックスという用語をデータフレームに変換することです。大量のデータ サンプルを処理していると、メモリ エラーが発生します。これに対する簡単な解決策はありますか?

4

6 に答える 6

22

これを試して

data("crude")
myTdm <- as.matrix(TermDocumentMatrix(crude))
FreqMat <- data.frame(ST = rownames(myTdm), 
                      Freq = rowSums(myTdm), 
                      row.names = NULL)
head(FreqMat, 10)
#            ST Freq
# 1       "(it)    1
# 2     "demand    1
# 3  "expansion    1
# 4        "for    1
# 5     "growth    1
# 6         "if    1
# 7         "is    2
# 8        "may    1
# 9       "none    2
# 10      "opec    2
于 2013-11-17T13:11:54.087 に答える
11

単語の頻度を作成してテーブルに配置するのに役立つRの次の行があります.txt形式のテキストファイルを読み取り、単語の頻度を作成します。これが興味のある人に役立つことを願っています.

avisos<- scan("anuncio.txt", what="character", sep="\n")
avisos1 <- tolower(avisos)
avisos2 <- strsplit(avisos1, "\\W")
avisos3 <- unlist(avisos2)
freq<-table(avisos3)
freq1<-sort(freq, decreasing=TRUE)
temple.sorted.table<-paste(names(freq1), freq1, sep="\\t")
cat("Word\tFREQ", temple.sorted.table, file="anuncio.txt", sep="\n")
于 2015-05-20T17:18:29.637 に答える
9

のソースを見ると、findFreqTermsこの関数slam::row_sumsは用語ドキュメント マトリックスで呼び出されたときにそのトリックを実行しているように見えます。たとえば、次のようにしてください。

data(crude)
slam::row_sums(TermDocumentMatrix(crude))
于 2015-07-18T16:43:22.617 に答える
2
a = scan(file='~/Desktop//test.txt',what="list")
a1 = data.frame(lst=a)
count(a1,vars="lst")

単純な周波数を取得するために機能するようです。txt ファイルがあったのでスキャンを使用しましたが、read.csv でも動作するはずです。

于 2013-08-07T10:39:08.840 に答える