Rの「TM」(テキストマイニング)パッケージのVectorSourceおよびVCorpusとは


9

VectorSourceとVCorpusが「tm」パッケージに正確に何が含まれているのかよくわかりません。

これらのドキュメントは不明確ですが、簡単な言葉で私に理解してもらうことはできますか?

回答:


12

「コーパス」は、テキストドキュメントのコレクションです。

tmのVCorpusは「揮発性」コーパスを指します。これは、コーパスがメモリに格納され、それを含むRオブジェクトが破棄されると破棄されることを意味します。

これを、DBのメモリ外に格納されているPCorpusまたはPermanent Corpusと比較してください。

tmを使用してVCorpusを作成するには、「ソース」オブジェクトをパラメーターとしてVCorpusメソッドに渡す必要があります。このメソッドを使用して利用可能なソースを見つけることができます
-getSources()

[1] "DataframeSource" "DirSource" "URISource" "VectorSource"
[5] "XMLSource" "ZipSource"

Sourceは、ディレクトリやURIなどの入力場所を抽象化します。VectorSourceは文字ベクトル専用です

簡単な例:

あなたがcharベクトルを持っているとしましょう-

input <-c( 'これは1行目です。'、 'これは2番目の行です')

ソースを作成します-vecSource <-VectorSource(input)

次に、コーパスを作成します-VCorpus(vecSource)

お役に立てれば。あなたはここでもっと読むことができます -https://cran.r-project.org/web/packages/tm/vignettes/tm.pdf


5

実際には、との間には大きな違いがCorpusありVCorpusます。

CorpusSimpleCorpusデフォルトとして使用されVCorpusます。つまり、の一部の機能が使用できなくなります。すぐにわかるのは、SimpleCorpusダッシュ、アンダースコア、その他の句読点の記号を保持できないことです。SimpleCorpusまたはCorpus自動的に削除しますが、削除しVCorpusません。Corpusのヘルプには、他にも制限事項があります?SimpleCorpus

次に例を示します。

# Read a text file from internet
filePath <- "http://www.sthda.com/sthda/RDoc/example-files/martin-luther-king-i-have-a-dream-speech.txt"
text <- readLines(filePath)

# load the data as a corpus
C.mlk <- Corpus(VectorSource(text))
C.mlk
V.mlk <- VCorpus(VectorSource(text))
V.mlk

出力は次のようになります。

<<SimpleCorpus>>
Metadata:  corpus specific: 1, document level (indexed): 0
Content:  documents: 46
<<VCorpus>>
Metadata:  corpus specific: 0, document level (indexed): 0
Content:  documents: 46

オブジェクトの検査を行う場合:

# inspect the content of the document
inspect(C.mlk[1:2])
inspect(V.mlk[1:2])

あなたはCorpusテキストを解凍することに気づくでしょう:

<<SimpleCorpus>>
Metadata:  corpus specific: 1, document level (indexed): 0
Content:  documents: 2
[1]                                                                                                                                            
[2] And so even though we face the difficulties of today and tomorrow, I still have a dream. It is a dream deeply rooted in the American dream.


<<VCorpus>>
Metadata:  corpus specific: 0, document level (indexed): 0
Content:  documents: 2
[[1]]
<<PlainTextDocument>>
Metadata:  7
Content:  chars: 0
[[2]]
<<PlainTextDocument>>
Metadata:  7
Content:  chars: 139

一方では、VCorpusオブジェクト内でそれを一緒に保持します。

今、あなたは両方の行列変換を行うとしましょう:

dtm.C.mlk <- DocumentTermMatrix(C.mlk)
length(dtm.C.mlk$dimnames$Terms)
# 168

dtm.V.mlk <- DocumentTermMatrix(V.mlk)
length(dtm.V.mlk$dimnames$Terms)
# 187

最後に、内容を見てみましょう。これはからCorpusです:

grep("[[:punct:]]", dtm.C.mlk$dimnames$Terms, value = TRUE)
# character(0)

そしてからVCorpus

grep("[[:punct:]]", dtm.V.mlk$dimnames$Terms, value = TRUE)

[1] "alabama,"       "almighty,"      "brotherhood."   "brothers."     
 [5] "california."    "catholics,"     "character."     "children,"     
 [9] "city,"          "colorado."      "creed:"         "day,"          
[13] "day."           "died,"          "dream."         "equal."        
[17] "exalted,"       "faith,"         "gentiles,"      "georgia,"      
[21] "georgia."       "hamlet,"        "hampshire."     "happens,"      
[25] "hope,"          "hope."          "injustice,"     "justice."      
[29] "last!"          "liberty,"       "low,"           "meaning:"      
[33] "men,"           "mississippi,"   "mississippi."   "mountainside," 
[37] "nation,"        "nullification," "oppression,"    "pennsylvania." 
[41] "plain,"         "pride,"         "racists,"       "ring!"         
[45] "ring,"          "ring."          "self-evident,"  "sing."         
[49] "snow-capped"    "spiritual:"     "straight;"      "tennessee."    
[53] "thee,"          "today!"         "together,"      "together."     
[57] "tomorrow,"      "true."          "york."

句読点付きの単語を見てください。それは大きな違いです。だよね?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.