Giả sử tôi có dữ liệu huấn luyện dựa trên văn bản và dữ liệu thử nghiệm. Để cụ thể hơn, tôi có hai bộ dữ liệu - đào tạo và thử nghiệm - và cả hai đều có một cột chứa văn bản và được quan tâm cho công việc trong tầm tay.Cách tạo lại cùng một DocumentTermMatrix với dữ liệu mới (kiểm tra)
Tôi đã sử dụng gói tm trong R để xử lý cột văn bản trong tập dữ liệu đào tạo. Sau khi loại bỏ các khoảng trắng, dấu chấm câu và các từ dừng, tôi bắt đầu kho văn bản và cuối cùng tạo một ma trận thuật ngữ tài liệu là 1 gram chứa tần số/số lượng từ trong mỗi tài liệu. Sau đó, tôi đã cắt giảm được xác định trước, ví dụ: 50 và chỉ giữ những cụm từ có số lượng lớn hơn 50.
Sau này, tôi đào tạo mô hình GLMNET sử dụng DTM và phụ thuộc biến (đã có trong dữ liệu đào tạo). Tất cả mọi thứ chạy trơn tru và dễ dàng cho đến bây giờ.
Tuy nhiên, làm cách nào để tiếp tục khi tôi muốn ghi điểm/dự đoán mô hình trên dữ liệu thử nghiệm hoặc bất kỳ dữ liệu mới nào có thể đến trong tương lai?
Cụ thể, những gì tôi đang cố gắng tìm hiểu là làm cách nào để tạo DTM chính xác trên dữ liệu mới?
Nếu tập dữ liệu mới không có bất kỳ từ nào tương tự như dữ liệu đào tạo ban đầu thì tất cả các cụm từ phải có số không (điều này là tốt). Nhưng tôi muốn có thể sao chép chính xác cùng một DTM (về mặt cấu trúc) trên bất kỳ kho văn bản mới nào.
Bất kỳ ý tưởng/suy nghĩ nào?
Nếu tôi hiểu câu hỏi của bạn một cách chính xác (và tôi không chắc là tôi có, mà không có một ví dụ tái sản xuất chứng minh những gì bạn đang cố gắng làm.), có vẻ cách đơn giản nhất để làm điều này là tạo ma trận thuật ngữ tài liệu bằng cách sử dụng tất cả dữ liệu của bạn và sau đó chia ma trận đó thành một bộ thử nghiệm và đào tạo. Bằng cách đó, bạn có tất cả các thuật ngữ được biểu diễn trong cả hai ma trận, ngay cả khi một ma trận chỉ có số không cho một số cụm từ. Bạn đang gặp rắc rối bởi vì bạn đang chia nhỏ dữ liệu trước khi tạo các ma trận tài liệu có kỳ hạn. – SchaunW
Tôi đồng ý với Schaun, nhưng tôi chỉ có thể làm điều đó với dữ liệu thử nghiệm mà tôi hiện có. Tôi đang tìm một giải pháp sẽ hoạt động khi tôi nhận dữ liệu mới vào ngày mai. Khác nếu nó sẽ là một nỗi đau để luôn luôn thêm dữ liệu mới để thoát khỏi những người thân, tái tạo DTM và đào tạo lại mô hình mỗi lần. – Godel
Một lần nữa, có dữ liệu ví dụ để làm việc với sẽ giúp bạn trả lời câu hỏi của mình dễ dàng hơn. Làm thế nào về điều này: biến dữ liệu mới của bạn thành ma trận thuật ngữ tài liệu, sau đó liên kết nó với dữ liệu cũ bằng cách sử dụng hàm 'rbind.fill' của gói' plyr', nó sẽ tạo một ma trận mới với tất cả các cột từ cả hai ma trận gốc. Dữ liệu đào tạo của bạn sẽ có các cột của NA cho bất kỳ điều khoản nào trong dữ liệu mới của bạn không có trong dữ liệu đào tạo của bạn. Sau đó, bạn có thể xóa các cột đó. Dữ liệu mới của bạn sẽ có các cột của NA cho bất kỳ điều khoản nào trong dữ liệu đào tạo của bạn nhưng không có trong dữ liệu mới của bạn, Bạn có thể thay thế các NA đó bằng số không. – SchaunW