2015-04-13 6 views
7

NLTK के StanfordParser का प्रयोग से टाइप किए हुए निर्भरता प्राप्त करने के लिए, मैं इस तरह एक वाक्य पार्स कर सकते हैं:StanfordParser का उपयोग करते हुए एक पार्स वाक्य

os.environ['STANFORD_PARSER'] = 'C:\jars' 
os.environ['STANFORD_MODELS'] = 'C:\jars' 
os.environ['JAVAHOME'] ='C:\ProgramData\Oracle\Java\javapath' 
parser = stanford.StanfordParser(model_path="C:\jars\englishPCFG.ser.gz") 
sentences = parser.parse(("bring me a red ball",)) 
for sentence in sentences: 
    sentence  

परिणाम है:

Tree('ROOT', [Tree('S', [Tree('VP', [Tree('VB', ['Bring']), 
Tree('NP', [Tree('DT', ['a']), Tree('NN', ['red'])]), Tree('NP', 
[Tree('NN', ['ball'])])]), Tree('.', ['.'])])]) 

मैं स्टैनफोर्ड पार्सर का उपयोग कर सकते कैसे उपरोक्त ग्राफ के अलावा टाइप निर्भरता प्राप्त करने के लिए? कुछ की तरह:

  1. रूट (रूट 0, लाने-1)
  2. iobj (लाने -1, मुझे-2)
  3. det (गेंद -5, एक-3)
  4. अमोद (गेंद-5, लाल 4)
  5. dobj (लाने-1, गेंद-5)
+0

हाय Yarik, ओवरफ्लो स्टैक करने के लिए स्वागत करते हैं। मैंने आपके प्रश्न और शीर्षक को और अधिक स्पष्ट करने की कोशिश की है। – Air

+0

आपको बहुत बहुत धन्यवाद! – Yarik

उत्तर

5

NLTK के StanfordParser मॉड्यूल नहीं (वर्तमान में) स्टैनफोर्ड निर्भरता रूपांतरण कोड के लिए पेड़ लपेटो है। आप मेरी लाइब्रेरी PyStanfordDependencies का उपयोग कर सकते हैं, जो निर्भरता कनवर्टर को लपेटता है।

तो nltk_tree प्रश्न के कोड स्निपेट से sentence है, तो यह काम करता है:

#!/usr/bin/python3 
import StanfordDependencies 

# Use str() to convert the NLTK tree to Penn Treebank format 
penn_treebank_tree = str(nltk_tree) 

sd = StanfordDependencies.get_instance(jar_filename='point to Stanford Parser JAR file') 
converted_tree = sd.convert_tree(penn_treebank_tree) 

# Print Typed Dependencies 
for node in converted_tree: 
    print('{}({}-{},{}-{})'.format(
      node.deprel, 
      converted_tree[node.head - 1].form if node.head != 0 else 'ROOT', 
      node.head, 
      node.form, 
      node.index)) 
+1

आपकी मदद के लिए धन्यवाद! – Yarik

+0

हैलो जब मैंने एनएलटीके पेड़ को पीटीबी में परिवर्तित करने की कोशिश की, तो उसने नोट के लिए धन्यवाद "वैल्यूएरर: स्टैनफोर्ड कोरएनएलपी से खराब निकास कोड" –

+0

@SnehaPVS जैसे त्रुटि दी। कृपया अधिक जानकारी के साथ https://github.com/dmcc/PyStanfordDependencies/issues पर कोई समस्या दर्ज करें। – dmcc

संबंधित मुद्दे