Αποτέλεσμα δεν εκτυπώνει όταν Στάνφορντ πρόγραμμα ανάλυσης που χρησιμοποιούνται σε python NLTK

ψήφοι
0

Χρησιμοποιώ παρακάτω κώδικα για να εκτυπώσετε αποτέλεσμα μιας συντακτικό δένδρο σε python NLTK.

        import os
        import nltk
        from nltk.parse import stanford
        from nltk.tokenize import sent_tokenize
        os.environ['STANFORD_PARSER'] = '/home/gadheyan/Project/stanford-parser-full-2014-08-27'
        os.environ['STANFORD_MODELS'] = '/home/gadheyan/Project/stanford-parser-full-2014-08-27'
        parser = stanford.StanfordParser(model_path=/home/gadheyan/Project/stanford-parser-full-2014-08-27/stanford-parser-3.4.1-models/edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz)
        sentences = parser.raw_parse_sents([A rare black squirrel has become a regular visitor to a suburban garden])
        print sentences

Περίμενα το αποτέλεσμα ως εξής:

(ROOT
  (S
    (NP (DT A) (JJ rare) (JJ black) (NN squirrel))
    (VP
      (VBZ has)
      (VP
        (VBN become)
        (NP (DT a) (JJ regular) (NN visitor))
        (PP (TO to) (NP (DT a) (JJ suburban) (NN garden)))))))

Αλλά εγώ πήρα το αποτέλεσμα ως

<listiterator object at 0x7f6ed5c30890>

Γιατί συμβαίνει αυτό;

Δημοσιεύθηκε 26/10/2015 στις 14:36
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
1

Ο τύπος επιστροφής της raw_parse_sents είναι ITER (ITER (Tree)), δεν είναι μια συμβολοσειρά. http://www.nltk.org/_modules/nltk/parse/stanford.html

Προσπαθήστε:

for line in sentences:
    for sentence in line:
        sentence.draw()

Stanford Parser και NLTK

Απαντήθηκε 26/10/2015 στις 14:49
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more