Tôi đang cố triển khai dự đoán bằng cách phân tích các câu. Hãy xem xét những điều sau đây [khá nhàm chán] câuCấu trúc dữ liệu để lưu trữ các liên kết từ
Call ABC
Call ABC again
Call DEF
Tôi muốn có một cấu trúc dữ liệu cho các câu trên như sau:
Call: (ABC, 2), (again, 1), (DEF, 1)
ABC: (Call, 2), (again, 1)
again: (Call, 1), (ABC, 1)
DEF: (Call, 1)
Nói chung, Word: (Word_it_appears_with, Frequency), ....
Xin lưu ý vốn có dư thừa trong loại dữ liệu này. Rõ ràng, nếu tần suất ABC
là 2 dưới Call
, tần suất Call
là 2 dưới ABC
. Làm cách nào để tối ưu hóa điều này?
Ý tưởng là sử dụng dữ liệu này khi một câu mới đang được nhập. Ví dụ: nếu Call
đã được nhập, từ dữ liệu, thật dễ dàng để nói ABC
có nhiều khả năng xuất hiện trong câu và cung cấp đề xuất đó làm đề xuất đầu tiên, tiếp theo là một lần nữa và DEF
.
Tôi nhận thấy đây là một trong số một triệu cách có thể thực hiện dự đoán và tôi háo hức mong đợi các đề xuất về các cách khác để thực hiện điều đó.
Cảm ơn
Tôi khá chắc chắn rằng không có câu trả lời rõ ràng vì mục tiêu của bạn không đủ rõ ràng. Về cơ bản, đây là vấn đề về AI, và các giải pháp AI thường có những điều kỳ quặc mà mọi người có thể sống chung; tuy nhiên, mà không biết bối cảnh chính xác của bạn, thật khó để nói những gì quirks sẽ được chấp nhận. Vì lý do này, tôi sẽ bỏ phiếu để đóng câu hỏi của bạn. (Đó là một điều rất thú vị, không thích hợp cho Stack Overflow theo ý kiến của tôi.) – zneak
Điều đó nói rằng, bạn có thể sử dụng một biểu diễn cây cho các từ của bạn, và có mỗi nhánh cây giữ một xác suất. Điều này có thể làm việc tốt nếu đầu vào là lặp đi lặp lại và cú pháp tương đối cố định, nhưng bạn sẽ gặp khó khăn khi kết hợp ngôn ngữ tự nhiên như thế. – zneak
Tôi có thể sử dụng cây, vâng, nhưng tôi muốn loại bỏ sự dư thừa trong dữ liệu: Tần suất của từ1 xảy ra với từ2 rõ ràng sẽ giống như từ2 xảy ra với từ1. Ngoài ra, đầu vào là liên tục, do đó xác suất nằm ngoài câu hỏi. – WeNeigh