12

Próbuję zaimplementować ekstrakcję relacji między parami czasowników. Chcę używać ścieżki zależności od jednego czasownika do drugiego jako funkcji dla mojego klasyfikatora (przewiduje, czy istnieje związek X). Ale nie jestem pewien, jak zakodować ścieżkę zależności jako cechę. Poniżej przedstawiono niektóre ścieżki przykład z zależnościami, jak przestrzeń oddzielona adnotacje Relacja z StanfordCoreNLP zwiniętymi zależności:Jak kodować ścieżkę zależności jako cechę dla klasyfikacji?

nsubj acl nmod:from acl nmod:by conj:and 
nsubj nmod:into 
nsubj acl:relcl advmod nmod:of 

Ważne jest, aby pamiętać, że te ścieżki są zmiennej długości a relacja mogłaby ponownie bez ograniczeń .

Dwa narażania sposoby kodowania tej funkcji, które przychodzą mi do głowy to:

1) Ignoruj ​​sekwencję, a tylko mają jedną cechę dla każdej relacji z jego wartość oznacza liczbę razy pojawia się w ścieżce

2) Mają przesuwne okno o długości n, i mają jedną cechę dla każdej możliwej pary relacji z wartością określającą, ile razy te dwie relacje pojawiały się kolejno. Przypuszczam, że tak właśnie jeden koduje n-gramy. Jednak liczba możliwych relacji wynosi 50, co oznacza, że ​​nie mogę tak naprawdę podążać za tym podejściem.

Wszelkie sugestie są mile widziane.

Odpowiedz

2

Mieliśmy projekt, który zbudował klasyfikator na podstawie ścieżek zależności. Poprosiłem członka grupy, która opracowała system, a on powiedział:

  1. funkcja wskaźnik dla całej ścieżki

    Więc jeśli masz punkt danych treningowych (verb1 -e1-> w1 -e2-> w2 -e3-> w3 -e4-> czasownik2, relacja1) funkcja byłaby (e1-e2-e3-e4)

  2. Wykonał także sekwencje ngram, więc dla tego samego punktu danych, miałbyś również (e1), (e2), (e3), (e4), (e1-e2), (e2-e3), (e3-e4), (e1-e2-e3), (e2-e3-e4)

    On również poleca zakończyła zwijanie krawędzi dodatnich, aby ścieżki były mniejsze.

Należy również zauważyć, że opracował zbiór reguł wysokiej precyzji dla każdej relacji i wykorzystał to do stworzenia dużego zestawu danych treningowych.