2017-08-08 21 views
0

問題: 私は、Webページからのダウンロードの文章はそのループがある - と反復ごとに成長している文字に追加しますベクター。アペンドtxtファイル - その後、TMパッケージでコーパスにそのtxtファイルを読み込む

は概念的には、出力は次のようになります。

myVec 

[1] "bla"                                                   
[2] "blablabla"                       
[3] "blabla"                                                         
[4] " blablablablabla" 

等...

各番号は私がダウンロードした文を表します。反復ごとに、ループはベクトルを文章とともに追加します。

結果をベクトルにする代わりに、それを成長するtxtファイルに保存したいと思います。その理由は、ダウンロードする必要があるデータ量が膨大なためです。ループをしばらく(1000回繰り返す)実行させてから休憩を取ってから、翌日にもう一度実行する必要があります。

そして、私はtxtファイルにいくつかの構造を持たせたいと思います。それで、簡単に文で分割することができます。これは後でそれぞれの文を別々のドキュメントとして作成するDTMを作成したいからです。ループ全体に新しい文章を付加することができますファイルに書き込む方法:

は、だから私は

1を必要とするもの。

2:私がダウンロードした文章に基づいて後でDTMを作成できるように、tmパッケージでそのファイルを読む方法。私が試した何

私ははwrite.table()関数を使用していた欲しいものを得ている最も近いです。

write.table(MyVec, file = "output.txt",row.names=FALSE, col.names = FALSE, append= TRUE) 

これは私の文章が引用符で区切られたテキストを与えているようだ: 「BLA」 「blablabla」 「Blabla」 等

しかし、私が利用する方法がわかりませんこれは、後で文に基づいてDTMを作成するために、tmでコーパスにそれを読み込むときです。たぶん良い方法がありますか?

write(MyVec, file="output.txt",append=TRUE) 

これは私に成長しているtxtファイルを与えるが、文章を分離していないよう:

は、私はまた、書き込み()関数を試してみました。私はそれをコーパスに読み込み、文に基づいてDTMを作成する方法を知らない。

私はwriteLines()と見なしましたが、appendオプションを持たないようです。とにかく、テキストを改行したくありません。私は文章を分離したいだけです。

+0

'write.table'に' quote = FALSE'を設定すると、引用符を取り除くことができます。 – Val

答えて

0

これを行う1つの方法は、文のリストをデータフレームとして保存(または読み込み)し、tm()を使用してベクトルソースとして解析することです。あなたはコーパスを取得するためにTXTやCVSに「文」のベクトルを記述する必要はありませんでした前の例では

library(tm) 

Sentences <- c("First Sentence BLA", "Second Sentence BLA BLA", "Nth Sentence [...] Bla^n") 
SentencesDF <- as.data.frame(Sentences) 
Corpus <- VectorSource(SentencesDF) 

。それ以外の理由でこれを行う必要がある場合は、次のコマンドを実行するだけです。

write.csv(SentencesDF, file = "NameofFile.csv") 
+0

答えてくれてありがとうNicolás!私はそれを保存する必要があります。その理由は、ウェブページからすべての文章を取得するのに非常に時間がかかるからです。だから私はプロセスを中断し、翌日にそれを取り上げることができるようにする必要があります(私はこれを明確にするために投稿を更新しました)。 write.csv()は私にそれをさせません。それはappend引数をとらないからです。私はwrite.table()とwrite()を試しています。しかし、私の問題は、私が最初に持っていたのと同じベクトルを再現しやすい方法で結果を保存する方法を見つけることができないということです。文で分割されたもの。 –

+0

さて、私は2つの選択肢を考えています。私のお気に入りは毎日DFを保存することです(Sentences_2017-08-07; Sentences_2017_08_08; ...)。すべてのソースのキャプチャが終わったら、すべてのアトミックDFを1つに追加します。 (つまり、do.call(rbind、lapply(ls(pattern = "Sentences_")、get))) –

+0

2番目の方法は、キャプチャされた各文の末尾に一意の文字または文字列を追加することです。その文章をRに読み返すときにその一意の文字を区切り記号としてマークすることによって各文章を解析する。 –

関連する問題