Próbuję napisać algorytm (który, jak zakładam, będzie polegać na technikach przetwarzania języka naturalnego), aby "wypełnić" listę wyszukiwanych terminów. Prawdopodobnie istnieje nazwa tego rodzaju rzeczy, której nie jestem świadomy. Jaki jest ten rodzaj problemu, a jaki algorytm da mi następujące zachowanie?Algorytm NLP do "wypełniania" wyszukiwanych terminów
Wejście:
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"
wyjściowa:
["Dolphin Watching", "Miami Dolphins"]
Należy przede wszystkim dowiedzieć się, że jeśli "Delfin" pojawia się w ogóle, to prawie zawsze albo w bigrams "Dolphin Watching" lub „Miami Delfiny ". Preferowane są rozwiązania w Pythonie.
Skąd wiadomo, że Dolphin jest częścią Bigramsów "Dolphin Watching" lub "Miami Dolphins?" Czy dlatego, że oba słowa w każdym bigramie są pisane wielką literą? A może masz inną listę zawierającą pożądane bigramy? –
@RobertHarvey: Dobry algorytm NLP powinien być w stanie przetworzyć [Miami Dolphins] jako termin. To samo dotyczy [Obserwowanie delfinów]. Łatwiej jest, gdy myślisz o tym, jakbyś sformułował każde z tych zdań jako pytanie. P: "Jaką trasę lubisz oglądać?" Odp .: [Trasa [Dolphin Watching]], P: Kto przegrał mecz? Odp .: [The Miami Dolphins]]. Musisz przetworzyć go w drzewo, aby zobaczyć, co należy do czego. W żadnym razie nie jest to łatwy problem, ale możesz uzyskać dokładne wyniki. – mpen
@RobertHarvey Mam listę konkretnych słów, więc wiem, że Dolphin musi gdzieś tam być. – Trindaz