2016-01-06 16 views
23

Typowa rozdzielczość coreference działa w następujący sposób:rozdzielczości zaimek tyłu

Zapewnione

The man likes math. He really does. 

że domyśla się, że

he 

dotyczy

the man. 

Istnieją mnóstwo narzędzi do Zrób to.

Czy istnieje jednak sposób, aby zrobić to od tyłu?

Na przykład

podane

The man likes math. The man really does. 

chcę zrobić rozdzielczość zaimka "wstecz"

tak aby uzyskać wyjście jak

The man likes math. He really does. 

mój wkład tekst będzie przeważnie wynosił 3 ~ 10 zdań, a ja pracuję z pythonem.

+0

Czy nie byłoby łatwo, gdybyś zidentyfikował anafory i ich poprzedników, a następnie zastąpił anaforę swoim poprzednikiem? – Riyaz

+0

Czy możesz podać więcej przykładów tego, jak wyglądają zdania? –

+0

W podanym przykładzie, jak ustalić, że drugi "mężczyzna" odnosi się do tej samej osoby?Ponadto pomyśl, że byłoby lepiej mieć więcej przypadków testowych, jeśli możesz je podać. –

Odpowiedz

8

To chyba nie jest odpowiedź, z której można być zadowolonym, ale myślę, że odpowiedź brzmi, że nigdzie nie ma takiej funkcjonalności, ale można ją napisać samodzielnie bez większych trudności. Podając zarys tego, jak zrobić to z CoreNLP:

  1. Nadal działa coref. Dzięki temu dowiesz się, że "człowiek" i "człowiek" są podstawą, więc możesz zastąpić drugi zaimkiem.

  2. Uruchom annotator gender z CoreNLP. Jest to słabo udokumentowany i jeszcze słabiej reklamowany adnotator, który próbuje dołączyć przypisanie płci do zdań w zdaniu.

  3. Jakoś dowiedzieć się liczby mnogiej. W większości przypadków można używać znacznika part of of speech: rzeczowniki w liczbie mnogiej otrzymują znaczniki NNS lub NNPS, ale są pewne komplikacje, więc warto również rozważyć (1) istnienie koniunkcji w poprzedniku; (2) lemat słowa różniącego się od jego tekstu; (3) zwłaszcza w połączeniu z 2, słowo kończące się na "s" lub "es" - może to odróżnić lematyzacje, które usuwają liczby mnogie w stosunku do lematyzacji, które usuwają czasy itd.

  4. To wystarczy, aby obliczyć poza prawym zaimkiem. Teraz to tylko kwestia zerwania zdania i złożenia go razem. Jest to trochę uciążliwe, jeśli robisz to w CoreNLP - kod nie jest po prostu skonfigurowany do zmiany tekstu zdania - ale w najgorszym przypadku możesz zawsze po prostu ponownie zanotować nową formę powierzchni.

Mam nadzieję, że to trochę pomoże!

+0

Fajnie! nie wiedziałem, że CoreNLP ma "adnotator" płci. – alvas