2012-11-20 11 views
11

Come posso ottenere l'albero delle dipendenze come mostrato di seguito. Posso ottenere la relazione di dipendenza come testo puro e anche il grafico delle dipendenze con l'aiuto dello strumento dependencysee. Ma che dire dell'albero della dipendenza che ha parole come nodi e dipendenza come spigoli. Grazie mille!come ottenere un albero delle dipendenze con parser PNL Stanford

Standard Stanford dependencies (collapsed and propagated)

risposta

8

Questi grafici vengono prodotti utilizzando GraphViz, un pacchetto di disegno grafico open source, originario di AT & T Research. È possibile trovare un metodo toDotFormat() in edu.stanford.nlp.trees.semgraph.SemanticGraph che convertirà un SemanticGraph nel formato di lingua di input dot che può essere visualizzato da dot/GraphViz. Al momento, non esiste uno strumento da riga di comando che fornisce questa funzionalità, ma è piuttosto semplice utilizzare tale metodo.

2

Mi sto occupando di qualcosa di simile al momento. Questa non è una soluzione ideale ma potrebbe essere utile. come indicato nella risposta sopra, utilizzare toDotFormat() per ottenere gli alberi di analisi in linguaggio dei punti. quindi usa uno dei tanti strumenti (sto usando python-graph) per leggere questi dati e renderli come un'immagine. c'è un esempio su questo link http://code.google.com/p/python-graph/wiki/Example

1

Ne avevo anche bisogno; ora è bello vedere che abbiamo anche uno strumento online. Utilizzare questa: http://graphs.grevian.org/graph (come detto qui: http://graphs.grevian.org/)

Le fasi sono:

  1. analizzare la frase:

    sent = 'What is the step by step guide to invest in share market in india?' 
    p = dep_parser.raw_parse(sent) 
    for e in p: 
        p = e 
        break 
    
  2. Stampa il formato .to_dot() come:

    print(p.to_dot()) 
    
  3. Copia incolla il uscita su http://graphs.grevian.org/graph e premere il pulsante Genera.

Si dovrebbe vedere il grafico desiderato.

+0

Grazie Christopher. Davvero gentile da parte tua. – user1953366

1

Ecco come si dovrebbe fare esattamente questo (in python)

Installazione di tutte le dipendenze necessarie (OS X):

# assuming you have java installed and available in PATH 
# and homebrew installed 

brew install stanford-parser 
brew install graphviz 
pip install nltk 
pip install graphviz 

codice:

import os 
from nltk.parse.stanford import StanfordDependencyParser 
from graphviz import Source 

# make sure nltk can find stanford-parser 
# please check your stanford-parser version from brew output (in my case 3.6.0) 
os.environ['CLASSPATH'] = r'/usr/local/Cellar/stanford-parser/3.6.0/libexec' 

sentence = 'The brown fox is quick and he is jumping over the lazy dog' 

sdp = StanfordDependencyParser() 
result = list(sdp.raw_parse(sentence)) 

dep_tree_dot_repr = [parse for parse in result][0].to_dot() 
source = Source(dep_tree_dot_repr, filename="dep_tree", format="png") 
source.view() 

che risulta in:

enter image description here

Ho usato questo durante la lettura Text Analytics With Python: CH3, buona lettura, si prega di fare riferimento, se avete bisogno di più informazioni su di analisi basato sulle dipendenze.

Problemi correlati