Создайте трехуровневую зависимость в случае, если глагол связан с не глаголом при разборе зависимости
Я использую разбор зависимостей для варианта использования в R с пакетом corenlp. Тем не менее, мне нужно настроить рамку данных для конкретного случая использования.
Мне нужен фрейм данных, где у меня есть три столбца. Я использовал приведенный ниже код, чтобы добраться до дерева зависимостей.
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 - это глагол, связанный с числами, а число - это не глагол, связанный с нечетным.
Таким образом, предполагаемый фрейм данных должен быть
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
1 ответ
Во-первых, вам нужно, чтобы ваш тег дерева зависимостей печатался как глагол, а не как существительное.
Попробуйте использовать предложение с двумя независимыми предложениями и посмотрите, не помечен ли корень второго независимого предложения как таковой.
Если это так, это простая прогулка по колонке регулятора. Если нет, вам нужно обратиться к механике вашего генератора дерева зависимостей.