我正在使用<?php
date_default_timezone_set('Asia/Calcutta');
$sFinalDate = date('Y-m-d', strtotime($sDate));
$sNow = new DateTime();
$iRemain = new DateTime( $sFinalDate.$sTime);
$iInterval = $iRemain->diff($sNow);
$sTimeCounter = $iInterval->format("%h: %i :%s ");
$sCalculate = $iInterval->format("%a:%h:%i");
?>
,我得到了句子的以下输出
我在睡梦中拍了一头大象
Stanford dependency parser
我想将此转换为一个图表,其中节点是每个标记,边缘是它们之间的关系。
我需要图形结构进行进一步处理,因此如果对它进行修改很容易并且必须易于表示,这将有所帮助。
这是我的代码,直到现在。
python dep_parsing.py
[((u'shot', u'VBD'), u'nsubj', (u'I', u'PRP')), ((u'shot', u'VBD'), u'dobj', (u'elephant', u'NN')), ((u'elephant', u'NN'), u'det', (u'an', u'DT')), ((u'shot', u'VBD'), u'nmod', (u'sleep', u'NN')), ((u'sleep', u'NN'), u'case', (u'in', u'IN')), ((u'sleep', u'NN'), u'nmod:poss', (u'my', u'PRP$'))]
如何制作这样的图形结构?
答案 0 :(得分:3)
您可以遍历dep.triples()
并获得所需的输出。
<强>代码:强>
for triple in dep.triples():
print triple[1],"(",triple[0][0],", ",triple[2][0],")"
<强>输出:强>
nsubj ( shot , I )
dobj ( shot , elephant )
det ( elephant , an )
nmod ( shot , sleep )
case ( sleep , in )
nmod:poss ( sleep , my )
有关详细信息,您可以查看:NLTK Dependencygraph方法triples()
,to_dot()
和dep.tree().draw()
编辑 -
dep.to_dot()
的输出是
digraph G{
edge [dir=forward]
node [shape=plaintext]
0 [label="0 (None)"]
0 -> 2 [label="root"]
1 [label="1 (I)"]
2 [label="2 (shot)"]
2 -> 4 [label="dobj"]
2 -> 7 [label="nmod"]
2 -> 1 [label="nsubj"]
3 [label="3 (an)"]
4 [label="4 (elephant)"]
4 -> 3 [label="det"]
5 [label="5 (in)"]
6 [label="6 (my)"]
7 [label="7 (sleep)"]
7 -> 5 [label="case"]
7 -> 6 [label="nmod:poss"]
}