2017-10-03 9 views
0

私はstmのテキスト解析のために439の観測値を持つデータセットを扱っています。 textProcessorを使用すると、何らかの理由で観測数が438に変わります。これは、後でfindThoughts()関数を使用するなどの問題を引き起こします。ラインの下の問題となってこのtextProcessorは私のコーパスの観測数を変更します(Rのstmパッケージを使用)

############################################## 
#PREPROCESSING 
############################################## 

#Process the data for analysis. 
temp<-textProcessor(sovereigncredit$Content,sovereigncredit, customstopwords = customstop, stem=FALSE) 
meta<-temp$meta 
vocab<-temp$vocab 
docs<-temp$documents 
length(docs) # QUESTION: WHY IS THIS 438 instead of 439, like the original dataset? 
length(sovereigncredit$Content) # See, this original one is 439. 
out <- prepDocuments(docs, vocab, meta) 
docs<-out$documents 
vocab<-out$vocab 
meta <-out$meta 

例は次のとおりです。

出力が

いる

thoughts1<-findThoughts(sovereigncredit1, texts=sovereigncredit$Content,n=5, topics=1) 

findThoughtsで「エラー(sovereigncredit1、テキスト= sovereigncredit $コンテンツ、: 提供されたテキストの数とモデル化されたドキュメントの数が一致しません "

"sovereigncredit1"は上からの "out"に基づくトピックモデルです。

私の解釈が正しい場合(私は別の間違いをしているわけではない)、この問題は、テキスト処理の前後の観察数のこの1つの観察の違いのようです。

これまでのところ、私は元のcsvを見て、実際には439の有効な観測と空の行がないことを確認しました。私は何が起きているのか分かりません。どんな助けもありがとう!

答えて

0

stm空のドキュメントを処理できないため、単に削除します。 textProcessorは、カスタムストップワード、3文字より短い単語、数字などを削除します。ここで起こっていることは、あなたのドキュメントのうちの1つです(削除されたものの1つです)。いろいろなものtextProcessorします。

この文書では、どの文書を元に戻して、このインスタンスで何をしたいかを決めることができます。一般に、テキスト操作をより詳細に制御したい場合は、文書用語行列にテキストを操作するためには、stmよりはるかにきめ細かなツールを持つquantedaパッケージを強くお勧めします。

関連する問題