私はPythonとSyntaxNetの両方の初心者でもあります。私がしたことは、SyntaxNetの出力をツリーから削除してタブ区切りのテキストファイルに変更したことです
bazel-bin/syntaxnet/conll2tree \
--task_context=$MODEL_DIR/context.pbtxt \
--alsologtostderr
SyntaxNetフォルダーの demo.shから。このコマンド echo を実行します'open Book, which I have written with laboratory writer, with libreoffice writer.' | syntaxnet/demo.sh > output.txt
テキストファイルは次のようになります。

次に、 でデータを読み取りcsv.reader
、 に変えてから、 (列番号は「0」から始まる) のlist
列 4と列 7 を検索して見つけることができます。sublists
ROOT
上記の説明のコードを入れます:
#read from Syntaxnet output tab delimited textfile
def readata(filename):
file=open(filename,'r')
lines=file.readlines()
lines=lines[:-1]
data=csv.reader(lines,delimiter='\t')
#make a list of lists
lol=list(data)
return lol
#find the verb which is ROOT of the sentence
lists=readata(filename)
for sublist in lists:
if sublist[7]=='ROOT' and sublist[4]=='VBP':
word=sublist[1]
このコードはビッグナーによって書かれていることに注意してください。しかし、少なくとも私にとってはうまくいきました。