Yanıtlar:
"Corpus" metin belgelerinin bir koleksiyonudur.
Tm'deki VCorpus "Uçucu" korpusa karşılık gelir, bu da korpusun bellekte depolandığı ve onu içeren R nesnesi yok edildiğinde yok edileceği anlamına gelir.
Bunu db'de bellek dışında depolanan PCorpus veya Kalıcı Corpus ile karşılaştırın.
Tm kullanarak bir VCorpus oluşturmak için VCorpus yöntemine bir parametre olarak bir "Source" nesnesini geçirmemiz gerekir. Bu yöntemi kullanarak mevcut kaynakları bulabilirsiniz -
getSources ()
[1] "DataframeSource" "DirSource" "URISource" "VectorSource"
[5] "XMLSource" "ZipSource"
Kaynak, dizin veya URI vb. Gibi giriş konumlarını özetler. VectorSource yalnızca karakter vektörleri içindir
Basit bir örnek:
Diyelim ki bir char vektörünüz var -
input <- c ('Bu birinci satır.', 'Ve bu ikinci satır')
Kaynağı oluşturun - vecSource <- VectorSource (input)
Sonra corpus'u oluşturun - VCorpus (vecSource)
Bu yardımcı olur umarım. Daha fazla bilgiyi buradan edinebilirsiniz - https://cran.r-project.org/web/packages/tm/vignettes/tm.pdf
Pratik anlamda, Corpus
ve arasında büyük bir fark vardır VCorpus
.
Corpus
SimpleCorpus
varsayılan olarak kullanır , yani bazı özellikleri VCorpus
kullanılamaz. Hemen belirgin olan, SimpleCorpus
tire, alt çizgi veya diğer noktalama işaretlerini tutmanıza izin vermeyecek olmasıdır; SimpleCorpus
veya Corpus
otomatik olarak kaldırır VCorpus
, değil. Yardımda Corpus
bulacağınız başka sınırlamalar da vardır ?SimpleCorpus
.
İşte bir örnek:
# 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
Çıktı şöyle olacaktır:
<<SimpleCorpus>>
Metadata: corpus specific: 1, document level (indexed): 0
Content: documents: 46
<<VCorpus>>
Metadata: corpus specific: 0, document level (indexed): 0
Content: documents: 46
Nesneleri incelerseniz:
# inspect the content of the document
inspect(C.mlk[1:2])
inspect(V.mlk[1:2])
Corpus
Metnin paketini açtığınızı göreceksiniz :
<<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
Iken VCorpus
onu nesne içinde bir arada tutar.
Şimdi her ikisi için de matris dönüşümünü yaptığınızı varsayalım:
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
Son olarak, içeriği görelim. Bu Corpus
:
grep("[[:punct:]]", dtm.C.mlk$dimnames$Terms, value = TRUE)
# character(0)
Ve 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."
Noktalama işaretleriyle kelimelere bir göz atın. Bu çok büyük bir fark. Öyle değil mi?