Tôi đang cố viết một thuật toán (mà tôi giả định sẽ dựa vào các kỹ thuật xử lý ngôn ngữ tự nhiên) để 'điền vào' danh sách cụm từ tìm kiếm. Có lẽ có một cái tên cho loại thứ mà tôi không biết. Loại vấn đề này được gọi là gì và loại thuật toán nào sẽ cho tôi hành vi sau đây?Thuật toán NLP để 'điền' các cụm từ tìm kiếm
Input:
docs = [
"I bought a ticket to the Dolphin Watching cruise",
"I enjoyed the Dolphin Watching tour",
"The Miami Dolphins lost again!",
"It was good going to that Miami Dolphins game"
],
search_term = "Dolphin"
Output:
["Dolphin Watching", "Miami Dolphins"]
Nó cơ bản nên hình dung ra rằng nếu "Dolphin" xuất hiện ở tất cả, đó là hầu như luôn luôn hoặc trong bigrams "Dolphin Watching" hoặc "Miami Cá heo ". Các giải pháp trong Python được ưu tiên.
Làm thế nào để bạn biết rằng Dolphin là một phần của bigrams "Dolphin Watching" hoặc "Miami Dolphins?" Có phải vì cả hai từ trong mỗi bigram đều được viết hoa? Hay bạn có một danh sách khác chứa các bigrams mong muốn? –
@RobertHarvey: Thuật toán NLP tốt sẽ có thể phân tích [Miami Dolphins] làm thuật ngữ. Tương tự với [Dolphin Watching]. Nó dễ dàng hơn khi bạn nghĩ về nó như thể bạn đã hình thành từng cụm từ như một câu hỏi. Q: "Bạn thích xem tour nào?" A: [The [Dolphin Watching] tour], Q: Ai mất trò chơi? A: [The Miami Dolphins]]. Bạn phải phân tích nó thành một cái cây để xem cái gì thuộc về cái gì. Không phải là một vấn đề dễ dàng bởi bất kỳ phương tiện ... nhưng bạn có thể nhận được kết quả phần nào chính xác. – mpen
@RobertHarvey Tôi có một danh sách các từ cụ thể để tôi biết Dolphin phải ở trong đó một nơi nào đó. – Trindaz