Tôi đang cố gắng nhóm, ví dụ, các chuỗi về lập trình với các chuỗi khác về lập trình, các chuỗi về vật lý với các chuỗi khác về vật lý, v.v., cho một loạt các chủ đề. Mặc dù khía cạnh ngôn ngữ lý thuyết rõ ràng của vấn đề, tôi đang tìm cách thực sự làm điều này bằng cách sử dụng lập trình / phần mềm.
Rundown: Đưa ra một số lượng lớn các chuỗi, làm thế nào tôi có thể phân nhóm chúng theo chủ đề ngữ nghĩa?
Ứng dụng cụ thể: Tôi có ~ 200 nghìn câu hỏi nhỏ mà tôi muốn phân loại thành các nhóm chung (xe hơi, máy tính, chính trị, Canada, thực phẩm, Barack Obama, v.v.).
Những gì tôi đã xem xét: Wikipedia có một danh sách các bộ công cụ xử lý ngôn ngữ tự nhiên (giả sử rằng những gì tôi đang cố gắng thực sự được gọi là NLP) vì vậy tôi đã xem xét một số nhưng dường như không làm gì tương tự với nhu cầu của tôi.
Lưu ý: Nó đã được chỉ ra rằng làm điều này đòi hỏi kiến thức bổ sung (ví dụ: một chiếc Porsche là một chiếc xe hơi, C ++ là một ngôn ngữ lập trình). Tôi giả sử rằng dữ liệu đào tạo là cần thiết, nhưng nếu tôi chỉ có danh sách các câu hỏi và câu trả lời, làm thế nào tôi có thể tạo dữ liệu đào tạo? Và sau đó làm thế nào để tôi sử dụng dữ liệu đào tạo?
Ghi chú thêm: Nếu định dạng hiện tại của trợ giúp Hỏi & Đáp của tôi (mặc dù trông giống như JSON, về cơ bản đó là tệp văn bản thô):
// row 1: is metadata
// row 2: is a very specific kind of "category"
// row 3: is the question
// row 4: is the answer
{
15343
A MUSICAL PASTICHE
Of classical music's "three B's", he was the one born in Hamburg in 1833
Johannes Brahms
}
Nhưng trước khi ai đó chỉ ra rằng đã tồn tại một danh mục, hãy lưu ý rằng có ~ 200k câu hỏi và câu trả lời như thế này, và về cơ bản là nhiều "danh mục". Tôi đang cố gắng nhóm chúng thành các nhóm rộng hơn như những nhóm được liệt kê ở trên. Ngoài ra, định dạng này có thể được thay đổi cho tất cả các câu hỏi rất dễ dàng, tôi thực hiện nó theo chương trình.
Và thêm ghi chú: Tôi thực sự không biết mình cần bao nhiêu loại (ít nhất là 10-20), vì bản thân tôi chưa đọc qua tất cả các câu hỏi. Tôi đã hy vọng một phần có số lượng hữu hạn được xác định bằng cách nào đó trong quá trình phân loại. Trong mọi trường hợp, tôi luôn có thể tự tạo một số danh mục.