Saya tidak yakin apa sebenarnya VectorSource dan VCorpus dalam paket 'tm'.
Dokumentasinya tidak jelas mengenai hal ini, adakah yang bisa membuat saya mengerti secara sederhana?
sumber
Saya tidak yakin apa sebenarnya VectorSource dan VCorpus dalam paket 'tm'.
Dokumentasinya tidak jelas mengenai hal ini, adakah yang bisa membuat saya mengerti secara sederhana?
"Corpus" adalah kumpulan dokumen teks.
VCorpus dalam tm mengacu pada korpus "Volatile" yang berarti bahwa corpus disimpan dalam memori dan akan dihancurkan ketika objek R yang mengandungnya dihancurkan.
Bandingkan ini dengan PCorpus atau Corpus Permanen yang disimpan di luar memori katakan dalam db.
Untuk membuat VCorpus menggunakan tm, kita perlu mengirimkan objek "Source" sebagai paramter ke metode VCorpus. Anda dapat menemukan sumber yang tersedia menggunakan metode ini -
getSources ()
[1] "DataframeSource" "DirSource" "URISource" "VectorSource"
[5] "XMLSource" "ZipSource"
Sumber abstrak lokasi input, seperti direktori, atau URI dll. VectorSource hanya untuk vektor karakter
Contoh sederhana:
Katakanlah Anda memiliki vektor char -
masukan <- c ('Ini baris satu.', 'Dan ini yang kedua')
Buat sumber - vecSource <- VectorSource (input)
Kemudian buat corpus - VCorpus (vecSource)
Semoga ini membantu. Anda dapat membaca lebih lanjut di sini - https://cran.r-project.org/web/packages/tm/vignettes/tm.pdf
Secara praktis, ada perbedaan besar antara Corpus
dan VCorpus
.
Corpus
menggunakan SimpleCorpus
sebagai default, yang berarti beberapa fitur VCorpus
tidak akan tersedia. Salah satu yang langsung terbukti adalah bahwa SimpleCorpus
tidak akan memungkinkan Anda untuk menyimpan tanda hubung, garis bawah atau tanda baca lainnya; SimpleCorpus
atau Corpus
secara otomatis menghapusnya, VCorpus
tidak. Ada batasan lain Corpus
yang akan Anda temukan dalam bantuan ?SimpleCorpus
.
Berikut ini sebuah contoh:
# 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
Outputnya adalah:
<<SimpleCorpus>>
Metadata: corpus specific: 1, document level (indexed): 0
Content: documents: 46
<<VCorpus>>
Metadata: corpus specific: 0, document level (indexed): 0
Content: documents: 46
Jika Anda melakukan pemeriksaan objek:
# inspect the content of the document
inspect(C.mlk[1:2])
inspect(V.mlk[1:2])
Anda akan melihat bahwa Corpus
membongkar teks:
<<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
Sambil VCorpus
menyimpannya bersama di dalam objek.
Katakanlah sekarang Anda melakukan konversi matriks untuk keduanya:
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
Akhirnya, mari kita lihat isinya. Ini dari Corpus
:
grep("[[:punct:]]", dtm.C.mlk$dimnames$Terms, value = TRUE)
# character(0)
Dan dari 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."
Lihatlah kata-katanya dengan tanda baca. Itu perbedaan besar. Bukan?