Rテキストファイルとテキストマイニング...データの読み込み方法

私はRパッケージ tm を使っています。テキストマイニングをしたいのですが。これは1つの文書であり、単語の袋として扱われます。

私は、テキストファイルを読み込み、必要なオブジェクトを作成して、次のような機能を使い始める方法についてのドキュメントを理解していません。

stemDocument(x, language = map_IETF(Language(x)))

だから、これは私のドキュメント "これはRロードのテスト"

テキスト処理のためにデータをロードし、オブジェクトxを作成するにはどうすればよいですか?

14

5 答え

@richiemorrisroeのように、私はこれについては文書化されていません。ここでは、tmパッケージで使用するテキストをどのようにしてドキュメント用語行列にするかを示します。

library(tm) #load text mining library
setwd('F:/My Documents/My texts') #sets R's working directory to near where my files are
a  <-Corpus(DirSource("/My Documents/My texts"), readerControl = list(language="lat")) #specifies the exact folder where my text file(s) is for analysis with tm.
summary(a)  #check what went in
a <- tm_map(a, removeNumbers)
a <- tm_map(a, removePunctuation)
a <- tm_map(a , stripWhitespace)
a <- tm_map(a, tolower)
a <- tm_map(a, removeWords, stopwords("english")) # this stopword file is at C:\Users\[username]\Documents\R\win-library\2.13\tm\stopwords 
a <- tm_map(a, stemDocument, language = "english")
adtm <-DocumentTermMatrix(a) 
adtm <- removeSparseTerms(adtm, 0.75)

この場合、正確なファイル名を指定する必要はありません。 3行目で参照されているディレクトリ内の唯一のものであれば、tm関数で使用されます。 3行目でファイル名を指定することに成功しなかったので、私はこのようにします。

誰かがldaパッケージにテキストを取得する方法を提案できるなら、私は最も感謝しています。私はそれをまったく動かすことができませんでした。

21
追加された
私は、言語が指定されていない限り、stemDocument関数がまったく動作しないように見えたので、上記のコードを編集しました。
追加された 著者 Ben,

同じライブラリの readPlain 関数を使用できませんか?あるいは、より一般的な scan 機能を使うだけでよいでしょう。

mydoc.txt <-scan("./mydoc.txt", what = "character")
6
追加された

私は実際にこれは非常にトリッキーなので、ここでより包括的な説明を開始することがわかった。

まず、テキスト文書のソースを設定する必要があります。私は最も簡単な方法を見つけました(特に、ドキュメントを追加する予定がある場合、すべてのファイルを読み込むディレクトリソースを作成することです)。

source <- DirSource("yourdirectoryname/") #input path for documents
YourCorpus <- Corpus(source, readerControl=list(reader=readPlain)) #load in documents

StemDocument関数をコーパスに適用することができます。 HTH。

5
追加された

あなたがしたいのは、個々のファイルをコーパスに読み込んだ後、テキストファイル内のさまざまな行を異なる観察として扱わせることでした。

これであなたが望むものが得られるかどうかを確認してください:

text <- read.delim("this is a test for R load.txt", sep = "/t")
text_corpus <- Corpus(VectorSource(text), readerControl = list(language = "en"))

これは、 "これはR load.txtのテストです"というファイルにテキストデータを持つ列が1つしかないと仮定しています。

ここで、 "text_corpus"はあなたが探しているオブジェクトです。

お役に立てれば。

2
追加された

ここでは、1回の観測ごとに1行のテキストファイルを作成しています。 tm(2017年2月)の最新のビネットはより詳細な情報を提供します。

text <- read.delim(textFileName, header=F, sep = "\n",stringsAsFactors = F)
colnames(text) <- c("MyCol")
docs <- text$MyCol
a <- VCorpus(VectorSource(docs))
0
追加された