【问题标题】:Generate three level dependency in case a verb is attached with non verb in dependency parsing生成三级依赖,以防在依赖解析中附加动词与非动词
【发布时间】:2018-02-15 12:30:05
【问题描述】:

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

我需要一个包含三列的数据框。我已经使用下面的代码到达依赖树。

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 标记,我最终得到了以下数据框。

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 是一个连接到奇数的非动词。

所以预期的数据框需要是

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

【问题讨论】:

    标签: r nlp stanford-nlp dependency-parsing


    【解决方案1】:

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

    尝试使用带有两个独立子句的句子,看看第二个独立子句的词根是否被标记为这样。

    如果是这样,只需简单浏览一下Governoridx 列。如果没有,您需要解决依赖树生成器的机制。

    【讨论】:

    • 感谢您的回复。我已经编辑了显示我到达的状态的问题。您能否看一下并分享一个可能对我有帮助的代码示例
    • 我的答案仍然是答案。对于特定的“代码示例”,您的问题过于宽泛。这里没有人会为你找到一个多根依赖树生成器。将答案标记为正确,尝试自己找到答案,然后在遇到的下一个障碍处发布另一个问题。
    • 这非常有帮助......非常感谢......当我遇到下一个障碍时,我一定会发布。为整个 SO 人口做出决定的工作非常出色。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2023-03-15
    • 2012-07-06
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 2017-05-08
    • 2012-12-06
    • 1970-01-01
    相关资源
    最近更新 更多