我想使用python中syntaxnet的解析器标记(例如:VBD ROOT、NN nsubj等)来帮助创建chatterbot。输入在控制台中完成。在
问:我怎样才能在一个变量中只得到VBP根而没有其他结果?我可以用这个调用来打印解析树的ASCII版本:subprocess.call(["echo 'Bob brought the pizza to Alice.' | syntaxnet/demo.sh"], shell =True)
,但是我对如何获取特定变量并将其存储在python变量中有点困惑。在
附言:我一周前开始学习python。在
我也是python和SyntaxNet的初学者。我所做的是通过删除将SyntaxNet的输出从树改为制表符分隔的文本文件
从SyntaxNet文件夹中的demo.sh。运行这个命令echo
'open Book, which I have written with laboratory writer, with libreoffice writer.' | syntaxnet/demo.sh > output.txt
文本文件如下:
然后可以使用
csv.reader
读取数据,将其转换为list
,然后搜索sublists
的第4列(列号从“0”开始)和第7列以查找ROOT
我把上面的代码解释了一下:
^{pr2}$请注意,这段代码是由一个bignner编写的,但它至少对我有效。在
如果您是一个Python初学者,并且只想使用词性(POS)标记,SyntaxNet可能有点过头了。SpaCy易于使用且相当精确。在
我在我的博客上写了一篇简单的文章,展示了如何将syntaxnet的输出加载到NLTK的结构中,以获得基于PoS和依赖关系的名词短语到DependencyGraph中:
http://www.davidsbatista.net/blog/2017/03/25/syntaxnet/
相关问题 更多 >
编程相关推荐