Sto provando a scrivere un algoritmo (che presumo si baserà sulle tecniche di elaborazione del linguaggio naturale) per "compilare" un elenco di termini di ricerca. Probabilmente c'è un nome per questo genere di cose di cui non sono a conoscenza. Come si chiama questo tipo di problema e quale tipo di algoritmo mi darà il seguente comportamento?Algoritmo NLP per compilare i termini di ricerca
ingresso:
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"
uscita:
["Dolphin Watching", "Miami Dolphins"]
Dovrebbe fondamentalmente capire che se "Dolphin" appare a tutti, è praticamente sempre o nelle bigrammi "Dolphin Watching" o "Miami delfini". Le soluzioni in Python sono preferite.
Come fai a sapere che Dolphin fa parte dei bigram "Dolphin Watching" o "Miami Dolphins?" È perché entrambe le parole in ogni bigram sono in maiuscolo? O hai un'altra lista contenente i bigram desiderati? –
@RobertHarvey: un buon algoritmo NLP dovrebbe essere in grado di analizzare [Miami Dolphins] come un termine. Lo stesso con [Dolphin Watching]. È più facile quando ci pensi come se formassi ognuna delle frasi come una domanda. Q: "A quale tour ti è piaciuto guardare?" A: [Il tour [Dolphin Watching]], Q: Chi ha perso la partita? A: [The [Miami Dolphins]]. Devi analizzarlo in un albero per vedere cosa appartiene a cosa. Non è un problema facile con qualsiasi mezzo ... ma puoi ottenere risultati un po 'precisi. – mpen
@RobertHarvey Ho un elenco di parole specifiche, quindi so che Dolphin deve essere lì da qualche parte. – Trindaz