首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解密SENNA块、SRL和Parser输出

解密SENNA块、SRL和Parser输出
EN

Stack Overflow用户
提问于 2016-01-25 10:03:28
回答 1查看 1.2K关注 0票数 0

塞纳是一个使用神经网络构建的NLP工具,它能够做到:

  • POS标记
  • 纳标记
  • 块标记
  • 语义角色标签标记和
  • 解析

http://ml.nec-labs.com/senna/download.html下载预编译包后

我运行了--help菜单,看看有哪些选项:

代码语言:javascript
复制
alvas@ubi:~/senna$ ./senna-linux64 --help
invalid argument: --help

SENNA Tagger (POS - CHK - NER - SRL)
(c) Ronan Collobert 2009

Usage: ./senna-linux64 [options]

 Takes sentence (one line per sentence) on stdin
 Outputs tags on stdout
 Typical usage: ./senna-linux64 [options] < inputfile.txt > outputfile.txt

Display options:
  -h             Display this help
  -verbose       Display model informations on stderr
  -notokentags   Do not output tokens
  -offsettags    Output start/end offset of each token
  -iobtags       Output IOB tags instead of IOBES
  -brackettags   Output 'bracket' tags instead of IOBES

Data options:
  -path <path>   Path to the SENNA data/ and hash/ directories [default: ./]

Input options:
  -usrtokens     Use user's tokens (space separated) instead of SENNA tokenizer

SRL options:
  -posvbs        Use POS verbs instead of SRL style verbs for SRL task
  -usrvbs <file> Use user's verbs (given in <file>) instead of SENNA verbs for SRL task

Tagging options:
  -pos           Output POS
  -chk           Output CHK
  -ner           Output NER
  -srl           Output SRL
  -psg           Output PSG

命令行界面是直截了当的,POS和NER标签的输出也很容易解释。

鉴于这一投入:

代码语言:javascript
复制
alvas@ubi:~/senna$ cat test.in
Foo went to eat bar at the Foobar.

这是标准的宾夕法尼亚树银行标签集:

代码语言:javascript
复制
alvas@ubi:~/senna$ ./senna-linux64 -pos < test.in
            Foo        NNP
           went        VBD
             to         TO
            eat         VB
            bar         NN
             at         IN
            the         DT
         Foobar        NNP
              .          .

这是生物标记集

代码语言:javascript
复制
alvas@ubi:~/senna$ ./senna-linux64 -ner < test.in
            Foo      S-PER
           went          O
             to          O
            eat          O
            bar          O
             at          O
            the          O
         Foobar      S-LOC
              .          O

对于分块来说,它也是我们习惯的某种BIOE标记集

代码语言:javascript
复制
alvas@ubi:~/senna$ ./senna-linux64 -chk < test.in
            Foo       S-NP
           went       B-VP
             to       I-VP
            eat       E-VP
            bar       S-NP
             at       S-PP
            the       B-NP
         Foobar       E-NP
              .          O

但是,S- 标记意味着什么?似乎只附加到单个令牌块的令牌上,是这样吗?

SRL标记有点奇怪,它们是每个令牌的多个注释:

代码语言:javascript
复制
alvas@ubi:~/senna$ ./senna-linux64 -srl < test.in
            Foo               -       S-A1        S-A0
           went            went        S-V           O
             to               -   B-AM-PNC           O
            eat             eat   I-AM-PNC         S-V
            bar               -   I-AM-PNC        S-A1
             at               -   I-AM-PNC    B-AM-LOC
            the               -   I-AM-PNC    I-AM-LOC
         Foobar               -   E-AM-PNC    E-AM-LOC
              .               -          O           O

看起来像我们从语义框架中获得的“元组式”输出,但我不理解这些约定,例如,-AM-是什么?什么是-PNC

输出意味着什么,我们应该如何解释它?

对于分析器的输出:

代码语言:javascript
复制
alvas@ubi:~/senna$ ./senna-linux64 -psg < test.in
            Foo (S1(S(NP*)
           went (VP*
             to (S(VP*
            eat (VP*
            bar (ADVP*)
             at (PP*
            the (NP*
         Foobar *))))))
              . *))

它看起来像我们在解析中看到括号内的解析输出但是是什么意思?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-25 19:22:22

SENNA使用CoNLL格式。你可以在这里读到:http://universaldependencies.github.io/docs/format.html

这是相当常见的,周围有很多转换器。

至于前缀,它们的意思是:多个单词表达式的S-单例表达式和B- begin I-中间E-末端。

然后是语义角色标注的输出。寻找更多关于SRL的信息,因为这会变得更加复杂。请注意,有两个列,一个用于动词go,另一个用于动词eat。通常,A0是主语,A1是直接对象(同样,过于简化)。AM是参数修饰语,-LOC是一个位置(可能是其他副词)。PNC似乎是指充当动词go宾语的代名词短语。从我头上不记得了。这里的示例verbs.colorado.edu/propbank/framesets-english/go-v.html对于解析树,它是括号内的,也是受Lisp启发的常见符号。*指示当前令牌的标签。我发现这个很有用:https://math.stackexchange.com/questions/588230/how-to-convert-parentheses-notation-for-trees-into-an-actual-tree-drawing

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34989721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档