首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在依存关系解析中,如果某个动词被附加了非动词,则生成三级依存关系

在依存关系解析中,如果某个动词被附加了非动词,则生成三级依存关系
EN

Stack Overflow用户
提问于 2018-02-15 20:30:06
回答 1查看 76关注 0票数 1

我使用corenlp包对R中的一个用例使用依赖关系解析。但是,我需要针对特定的用例调整数据帧。

我需要一个数据帧,其中我有三列。我使用了下面的代码来到达依赖关系树。

代码语言:javascript
运行
复制
devtools::install_github("statsmaths/coreNLP")
coreNLP::downloadCoreNLP()
initCoreNLP()
inp_cl = "generate odd numbers from column one and print."
output = annotateString(inp_cl)
dc = getDependency(output)

 sentence governor dependent      type governorIdx dependentIdx govIndex depIndex
1        1     ROOT  generate      root           0            1       NA        1
2        1  numbers       odd      amod           3            2        3        2
3        1 generate   numbers      dobj           1            3        1        3
4        1   column      from      case           5            4        5        4
5        1 generate    column nmod:from           1            5        1        5
6        1   column       one    nummod           5            6        5        6
7        1   column       and        cc           5            7        5        7
8        1 generate     print nmod:from           1            8        1        8
9        1   column     print  conj:and           5            8        5        8
10       1 generate         .     punct           1            7        1        10

使用带有以下代码的POS标记,我最终得到了以下数据帧。

代码语言:javascript
运行
复制
ps = getToken(output)

ps = ps[,c(1,2,7,3)]

colnames(dc)[8] = "id"

dp = merge(dc, ps[,c("sentence","id","POS")], 
     by.x=c("sentence","governorIdx"),by.y = c("sentence","id"),all.x = T)

dp = merge(dp, ps[,c("sentence","id","POS")], 
     by.x=c("sentence","dependentIdx"),by.y = c("sentence","id"),all.x = T)

colnames(dp)[9:10] = c("POS_gov","POS_dep")


  sentence dependentIdx governorIdx governor dependent      type govIndex id POS_gov POS_dep
1         1            1           0     ROOT  generate      root       NA  1    <NA>      VB
2         1            2           3  numbers       odd      amod        3  2     NNS      JJ
3         1            3           1 generate   numbers      dobj        1  3      VB     NNS
4         1            4           5   column      from      case        5  4      NN      IN
5         1            5           1 generate    column nmod:from        1  5      VB      NN
6         1            6           5   column       one    nummod        5  6      NN      CD
7         1            7           5   column       and        cc        5  7      NN      CC
8         1            8           1 generate     print nmod:from        1  8      VB      NN
9         1            8           5   column     print  conj:and        5  8      NN      NN
10        1            9           1 generate         .     punct        1  9      VB       .

如果动词(动作词)附加到非动词(非动作词),但非动词(非动作词)连接到其他非动词(非动作词),则一行应指示整个连接。generate是与numbers相关的动词,numbers是与odd相关的非动词。

因此,预期的数据帧需要

代码语言:javascript
运行
复制
Topic1 Topic2 Action
numbers odd    generate
column  from   generate
column  one    generate
column  and    generate
column  from   print
column  one    print
column  and    print
         .     generate
EN

回答 1

Stack Overflow用户

发布于 2018-02-16 13:45:52

首先,您需要将依赖关系树标记打印为动词,而不是名词。

试着用一个有两个独立从句的句子,看看第二个独立从句的词根是否有这样的标记。

如果是这样的话,您只需简单地浏览一下治理署的专栏。如果没有,您将需要解决依赖关系树生成器的机制。

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

https://stackoverflow.com/questions/48807333

复制
相关文章

相似问题

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