Chunking mit nltk

Wie kann ich das ganze Stück aus einem Satz erhalten, der ein Muster gegeben hat. Exemple

NP:{<NN><NN>} 

Satz markiert:

 [("money", "NN"), ("market", "NN") ("fund", "NN")] 

Wenn ich pse, erhalte ich

 (S (NP money/NN market/NN) fund/NN) 

Ich hätte gern auch die andere Alternative

 (S money/NN (NP market/NN fund/NN)) 

  • Python: tf-idf-cosinus: um Ähnlichkeit des Dokuments zu finden
  • Konkordanz für eine Phrase mit NLTK in Python
  • So vermeiden Sie die Berechnung jedes Mal, wenn ein Python-Modul neu geladen wird
  • Tag-Generierung aus einem Textinhalt
  • Wie man den NLTK Satz Tokenizer zwickt
  • Erzeugen von Ngrams (Unigrams, Bigrams usw.) aus einem großen Korpus von .txt-Dateien und deren Häufigkeit
  • Ntk words corpus enthält nicht "okay"?
  • POS-Tagger ist unglaublich langsam
  • 2 Solutions collect form web for “Chunking mit nltk”

    Ich denke, deine Frage geht es darum, die n wahrscheinlichsten Parsen eines Satzes zu bekommen. Habe ich recht? Wenn ja, sehen Sie die Funktion nbest_parse(sent, n=None) in der 2.0 Dokumentation .

    @mbatchkarov hat Recht auf die nbest_parse Dokumentation. Zum Codebeispiel siehe:

     import nltk # Define the cfg grammar. grammar = nltk.parse_cfg(""" S -> NP S -> NN NP S -> NP NN NP -> NN NN NN -> 'market' NN -> 'money' NN -> 'fund' """) # Make your string into a list of tokens. sentence = "money market fund".split(" ") # Load the grammar into the ChartParser. cp = nltk.ChartParser(grammar) # Generate and print the nbest_parse from the grammar given the sentence tokens. for tree in cp.nbest_parse(sentence): print tree 
    Python ist die beste Programmiersprache der Welt.