Wie generieren bi - /tri-Gramm mit spacig/nltk
Die Eingabe von text sind immer auf der Liste der dish-Namen, wo es 1~3 Adjektiven und einem Substantiv
Eingänge
thai iced tea
spicy fried chicken
sweet chili pork
thai chicken curry
Ausgänge:
thai tea, iced tea
spicy chicken, fried chicken
sweet pork, chili pork
thai chicken, chicken curry, thai curry
Grundsätzlich bin ich auf der Suche, um eine Analyse der Satz-Baum und versuchen zu generieren bi-Gramm durch die Kombination eines Adjektivs mit dem Substantiv.
Und ich möchte erreichen, das mit spacigen oder nltk
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich verwendet spacig 2.0 mit englischen Modell. Finden Nomen und "nicht-Substantive" zum Parsen der Eingabe und dann habe ich zusammen nicht-Substantive und Substantive zu erstellen, die den gewünschten Ausgang.
Ihre Eingabe:
Spacig Lösung:
Rufen Sie die Funktion:
Ergebnisse:
Erreichen Sie diese in wenigen Schritten mit NLTK:
PoS-tag der Sequenzen
erzeugen die gewünschten n-Gramme (in deinen Beispielen gibt es keine Zeichen, aber skip-Gramme, die erzeugt werden können durch die Trigramme und dann Stanzen aus der Mitte token)
wirf alle n-Gramme, die nicht dem Muster entsprechen JJ NN.
Beispiel:
Verlängern das Muster
('JJ', 'NN')
und die gewünschten n-Gramm für Ihre Bedürfnisse.Ich denke, es gibt keine Notwendigkeit, für die Analyse.
Das große problem dieses Ansatzes ist allerdings, dass die meisten PoS-tagger wird wahrscheinlich nicht tag alles genau so, wie Sie wollen.
Zum Beispiel die Standard-PoS-tagger meiner NLTK installation tagged "chili" als NN, nicht JJ, und "gebraten" habe VBD.
Analyse wird nicht helfen Sie mit, dass, obwohl!
Etwas wie dieses:
Alternativ mit
colibricore
https://proycon.github.io/colibri-core/doc/#installation ;P