web-dev-qa-db-ja.com

R、変換のtmエラーによりドキュメントが削除される

テキストのキーワードの重みに基づいてネットワークを作成したい。その後、tm_mapに関連するコードを実行するとエラーが発生しました。

library (tm)
library(NLP)
lirary (openNLP)

text = c('.......')
corp <- Corpus(VectorSource(text))
corp <- tm_map(corp, stripWhitespace)

Warning message:
In tm_map.SimpleCorpus(corp, stripWhitespace) :
transformation drops documents

corp <- tm_map(corp, tolower)

Warning message:
In tm_map.SimpleCorpus(corp, tolower) : transformation drops documents

コードは2か月前に機能していましたが、新しいデータを探していますが、もう機能していません。誰でも私が間違っていた場所を教えてください。ありがとうございました。以下のコマンドを試してみましたが、どちらも機能しません。

corp <- tm_map(corp, content_transformer(stripWhitespace))
7
Julie

コードはまだ機能しているはずです。エラーではなく警告が表示されます。この警告は、VCorpusの代わりにCorpusを使用する場合、VectorSourceに基づいたコーパスがある場合にのみ表示されます。

理由は、コーパスコンテンツの名前の数がコーパスコンテンツの長さと一致するかどうかを確認するために、基礎となるコードにチェックがあるからです。テキストをベクトルとして読み取る場合、ドキュメント名はなく、この警告がポップアップします。これは単なる警告であり、ドキュメントは削除されていません。

2つの例の違いを見る

library(tm)

text <- c("this is my text with some other text and some more")

# warning based on Corpus and Vectorsource
text_corpus <- Corpus(VectorSource(text))

# warning appears running following line
tm_map(text_corpus, content_transformer(tolower))
<<SimpleCorpus>>
Metadata:  corpus specific: 1, document level (indexed): 0
Content:  documents: 1
Warning message:
In tm_map.SimpleCorpus(text_corpus, content_transformer(tolower)) :
  transformation drops documents

# Using VCorpus
text_corpus <- VCorpus(VectorSource(text))

# warning doesn't appear
tm_map(text_corpus, content_transformer(tolower))
<<VCorpus>>
Metadata:  corpus specific: 0, document level (indexed): 0
Content:  documents: 1
tm_map(text_corpus, content_transformer(tolower))
9
phiver