Tôi đã tạo DocumentTermMatrix chứa 1859 tài liệu (hàng) và 25722 (cột). Để thực hiện các phép tính tiếp theo trên ma trận này, tôi cần phải chuyển đổi nó thành ma trận thông thường. Tôi muốn sử dụng lệnh as.matrix()
. Tuy nhiên, nó trả về lỗi sau: không thể phân bổ vectơ có kích thước 364,8 MB.lỗi gói tm "Không thể chuyển đổi DocumentTermMatrix thành ma trận chuẩn vì vector quá lớn"
> corp
A corpus with 1859 text documents
> mat<-DocumentTermMatrix(corp)
> dim(mat)
[1] 1859 25722
> is(mat)
[1] "DocumentTermMatrix"
> mat2<-as.matrix(mat)
Fehler: kann Vektor der Größe 364.8 MB nicht allozieren # cannot allocate vector of size 364.8 MB
> object.size(mat)
5502000 bytes
Vì lý do nào đó kích thước của đối tượng dường như tăng đột ngột bất cứ khi nào nó được chuyển thành ma trận thông thường. Làm thế nào tôi có thể tránh điều này?
Hoặc có cách nào khác để thực hiện các phép toán ma trận thông thường trên DocumentTermMatrix không?
Cảm ơn câu trả lời nhanh. Thật không may SparseM không có vẻ như nó sẽ là hữu ích vì tôi cần tính toán tương tự Jaccard giữa mỗi cặp dòng. Tôi làm điều này bằng cách sử dụng hàm vegdist() từ gói thuần chay. Điều này không hoạt động trên một ma trận thưa thớt. – Christian