Tôi đang tìm kiếm một số đầu vào và lý thuyết về cách tiếp cận một chủ đề từ vựng.
Giả sử tôi có một tập hợp các chuỗi, có thể chỉ là một câu hoặc có khả năng nhiều câu. Tôi muốn phân tích các chuỗi này để tách ra các từ quan trọng nhất, có lẽ với số điểm biểu thị khả năng của từ đó là quan trọng.
Hãy xem xét một vài ví dụ về những gì tôi muốn nói.
Ví dụ 1:
"Tôi thực sự muốn có một chiếc Keurig, nhưng tôi không đủ tiền!"
Đây là một ví dụ rất cơ bản, chỉ một câu. Là một con người, tôi có thể dễ dàng thấy rằng "Keurig" là từ quan trọng nhất ở đây. Ngoài ra, "đủ khả năng" là tương đối quan trọng, mặc dù rõ ràng nó không phải là điểm chính của câu. Từ "Tôi" xuất hiện hai lần, nhưng nó không quan trọng chút nào vì nó không thực sự cho chúng tôi biết bất kỳ thông tin nào. Tôi có thể mong đợi để thấy một hàm băm của từ / điểm giống như thế này:
"Keurig" => 0.9
"afford" => 0.4
"want" => 0.2
"really" => 0.1
etc...
Ví dụ # 2:
"Chỉ cần có một trong những cách bơi tốt nhất trong cuộc đời tôi. Hy vọng tôi có thể duy trì thời gian của mình đến cuộc thi. Giá như tôi đã nhớ mang theo chiếc đồng hồ không chống nước của mình."
Ví dụ này có nhiều câu, vì vậy sẽ có nhiều từ quan trọng hơn trong suốt. Không lặp lại bài tập điểm từ ví dụ # 1, tôi có thể mong đợi sẽ thấy hai hoặc ba từ thực sự quan trọng xuất phát từ điều này: "bơi" (hoặc "thực hành bơi"), "thi đấu", và "xem" (hoặc "không thấm nước đồng hồ "hoặc" đồng hồ không chống thấm nước "tùy thuộc vào cách xử lý dấu gạch nối).
Đưa ra một vài ví dụ như thế này, làm thế nào bạn sẽ làm điều gì đó tương tự? Có bất kỳ thư viện hoặc thuật toán (nguồn mở) hiện có nào trong lập trình đã làm điều này không?