VectorSource và VCorpus trong gói 'tm' (Khai thác văn bản) trong R là gì


9

Tôi không chắc chắn chính xác VectorSource và VCorpus là gì trong gói 'tm'.

Các tài liệu không rõ ràng về những điều này, bất cứ ai có thể làm cho tôi hiểu bằng các thuật ngữ đơn giản?

Câu trả lời:


12

"Corpus" là một bộ sưu tập các tài liệu văn bản.

VCorpus trong tm đề cập đến tử thi "Dễ bay hơi" có nghĩa là kho đó được lưu trữ trong bộ nhớ và sẽ bị phá hủy khi đối tượng R chứa nó bị phá hủy.

Tương phản điều này với PCorpus hoặc Permanent Corpus được lưu trữ bên ngoài bộ nhớ nói trong một db.

Để tạo một VCorpus bằng tm, chúng ta cần truyền đối tượng "Nguồn" làm tham số cho phương thức VCorpus. Bạn có thể tìm thấy các nguồn có sẵn bằng phương thức này -
getSource ()

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

Nguồn tóm tắt các vị trí đầu vào, như thư mục hoặc URI, v.v. VectorSource chỉ dành cho vectơ ký tự

Một ví dụ đơn giản:

Giả sử bạn có một vectơ char -

đầu vào <- c ('Đây là dòng một.', 'Và đây là dòng thứ hai')

Tạo nguồn - vecSource <- VectorSource (đầu vào)

Sau đó tạo kho văn bản - VCorpus (vecSource)

Hi vọng điêu nay co ich. Bạn có thể đọc thêm tại đây - https://cran.r-project.org/web/packages/tm/vignettes/tm.pdf


5

Trong thực tế, có một sự khác biệt lớn giữa CorpusVCorpus.

Corpussử dụng SimpleCorpusnhư một mặc định, có nghĩa là một số tính năng VCorpussẽ không có sẵn. Một điều hiển nhiên ngay lập tức là SimpleCorpussẽ không cho phép bạn giữ dấu gạch ngang, dấu gạch dưới hoặc các dấu hiệu khác của dấu câu; SimpleCorpushoặc Corpustự động loại bỏ chúng, VCorpuskhông. Có những hạn chế khác Corpusmà bạn sẽ tìm thấy trong trợ giúp với ?SimpleCorpus.

Đây là một ví dụ:

# 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

Đầu ra sẽ là:

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

Nếu bạn kiểm tra các đối tượng:

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

Bạn sẽ nhận thấy rằng Corpusgiải nén văn bản:

<<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

Trong khi VCorpusgiữ nó cùng nhau trong đối tượng.

Giả sử bây giờ bạn thực hiện chuyển đổi ma trận cho cả hai:

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

Cuối cùng, hãy xem nội dung. Đây là từ Corpus:

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

Và từ 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."

Hãy nhìn vào các từ có dấu câu. Đó là một sự khác biệt rất lớn. Phải không?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.