2016-06-05 17 views
1

Ich möchte bestimmte Schlüsselwörter aus einem Freitext wie "Ich möchte gekochte Eier und Spinatsuppe aus den nächsten Restaurants bestellen und sie zum Suchen von Inhalten verwenden Meine Datenbank Für zB ich möchte folgenden spezifischen Schlüsselwort (e) extrahieren und möchte eine Ausgabe ähnlich der folgenden wie ein Tupel von (Keyword-Typ, Keyword-Wert). zB ('Essen Artikel', 'Gekochte Eier'), (‚Food Artikel‘, ‚Spinat-Suppe‘), (‚Location‘, ‚Nächste Restaurants‘) usw.Extraktion von Schlüsselwort/Satz aus freiem Text mit NLTK und Python für strukturierte Abfragen

benötigt diese Werte und Typen zu verwenden, um weiter zu verfeinern und meine Tabellen in der Datenbank abzufragen.

I wa Ich versuche mit verschiedenen Techniken, die Python und NLTK verwenden, eine Antwort zu finden, brauche aber Hilfe, um mich in die richtige Richtung zu lenken. Nutze ich die richtigen Techniken/Frameworks? Benötigen Sie

+0

Bitte gehen Sie durch [dieses wunderbare Buch] (http://www.nltk.org/book_1ed/ch00.html), die mit dem NLTK-Modul zur Verfügung gestellt wird. –

Antwort

2

Es ist nicht so schwierig, aber nicht, dass Super präzise entweder

Danke, Sammy hier helfen.

Verwenden Sie NLTKs PoS Tagging, extrahieren Sie dann nouns und compound nouns, und verwenden Sie sie in Ihren DB-Abfragen.

Ein natürlicher Satz hat praktisch zwei Teile, eine Handlung, d.h. das Verb, und ein Nomen, d. H. Das Objekt.

Daher: "Ich von der nächstgelegenen Restaurants gekochten Eiern und Spinat-Suppe bestellen möchten" sagt uns, dass:

  • die Aktion/Verb ist order
  • Objekte/Substantive sind boiled eggs und spinach soup
  • Lage ist nearest restaurants
+0

Dank @Jahangir .. Nach meinem Verständnis, wird Pos Tagger mir eine Tüte Worte mit Rede Tagging Schlüsselwörter geben. Das Problem, dem ich gegenüberstehe, ist, wie man "gekocht" und "Eier" in ein Suchwort und dasselbe mit anderen verbindet. Es gibt auch eine Möglichkeit, sie als benutzerdefinierte Etiketten wie "Lebensmittel" und "Ort" zu kennzeichnen. usw. Oder muss ich vielleicht darüber nachdenken, einen vollständig benutzerdefinierten Code zu verwenden, um Labels meiner Wahl zu Keywords zu taggen? – Sammy

+0

@Sammy [dies] (http://datascience.stackexchange.com/questions/5718/add-custom-labels-to-nltk-information-extractor/5738#5738) ist, was Sie suchen. Der einfachste Weg, dieses Beziehungsmodell auszuführen, besteht darin, eine Nachschlagetabelle AKA Gazetteer zu erstellen. –

+0

@MayurH Danke für die Antwort. Schaut sich auch Optionen wie IEPY an. – Sammy