在python中使用Syntaxnet POS标记?

在python中使用Syntaxnet POS标记?,python,nlp,text-parsing,pos-tagger,syntaxnet,Python,Nlp,Text Parsing,Pos Tagger,Syntaxnet,我想在python中使用syntaxnet的解析器标记(例如:VBD ROOT、NN nsubj等)来帮助创建聊天室。输入在控制台中完成 问题:如何在变量中只获取VBP根的结果而不获取其他结果?我可以通过这个调用打印ASCII版本的解析树:subprocess.call([“echo”Bob把比萨饼带给Alice.\124; syntaxnet/demo.sh“],shell=True),但是我对如何获取特定变量并将其存储在python变量中有点困惑 p、 学生:我一周前开始学习python。如

我想在python中使用syntaxnet的解析器标记(例如:VBD ROOT、NN nsubj等)来帮助创建聊天室。输入在控制台中完成

问题:如何在变量中只获取VBP根的结果而不获取其他结果?我可以通过这个调用打印ASCII版本的解析树:
subprocess.call([“echo”Bob把比萨饼带给Alice.\124; syntaxnet/demo.sh“],shell=True)
,但是我对如何获取特定变量并将其存储在python变量中有点困惑


p、 学生:我一周前开始学习python。

如果你是python初学者,并且你只想使用词性(POS)标记,那么SyntaxNet可能有点过头了。很容易使用并且非常准确。

如果您是Python初学者,并且只想使用词性(POS)标记,那么SyntaxNet可能有些过分了。易于使用且非常准确。

我也是python和SyntaxNet的初学者。我所做的是通过删除将SyntaxNet的输出从树更改为以制表符分隔的文本文件

  bazel-bin/syntaxnet/conll2tree \
  --task_context=$MODEL_DIR/context.pbtxt \
  --alsologtostderr
来自SyntaxNet文件夹中的。运行以下命令echo
“openbook,这是我用laboratory writer和libreoffice writer编写的。”| syntaxnet/demo.sh>output.txt

文本文件如下所示:

然后,您可以使用
csv.reader
读取数据,将其转到
列表
,然后搜索
子列表的第4列(列编号从“0”开始)和第7列以查找
根目录

我把上述解释的代码:

#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]

请注意,这段代码是由一位bignner编写的,但它至少对我有用。

我也是python和SyntaxNet的初学者。我所做的是通过删除将SyntaxNet的输出从树更改为以制表符分隔的文本文件

  bazel-bin/syntaxnet/conll2tree \
  --task_context=$MODEL_DIR/context.pbtxt \
  --alsologtostderr
来自SyntaxNet文件夹中的。运行以下命令echo
“openbook,这是我用laboratory writer和libreoffice writer编写的。”| syntaxnet/demo.sh>output.txt

文本文件如下所示:

然后,您可以使用
csv.reader
读取数据,将其转到
列表
,然后搜索
子列表的第4列(列编号从“0”开始)和第7列以查找
根目录

我把上述解释的代码:

#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]

请注意,这段代码是由一位bignner编写的,但它至少对我有用。

我在博客上写了一篇简单的文章,展示了如何将syntaxnet输出加载到NLTK的结构中,以根据词性和依赖关系将名词短语加载到依赖关系图中:


我在我的博客上写了一篇简单的帖子,展示了如何将syntaxnet输出加载到NLTK的结构中,从而根据词性和依赖关系将名词短语加载到依赖关系图中: