2012-10-25 6 views
9

Wyciągam zdania przyczynowe z raportów o wypadkach na wodzie. Używam tutaj NLTK jako narzędzia. Ręcznie stworzyłem gramatykę regExp, biorąc 20 przyczynowych struktur zdań [patrz przykłady poniżej]. Skonstruowany gramatyka jest typuEkstrakcja zdań zderzeniowych przy użyciu pytka NLTK

grammar = r'''Cause: {<DT|IN|JJ>?<NN.*|PRP|EX><VBD><NN.*|PRP|VBD>?<.*>+<VBD|VBN>?<.*>+}''' 

Teraz gramatyka posiada 100% przywołanie na zbiorze testowym (zbudowałem własną zabawkę zbioru danych z 50 i 50 niezarejestrowanych przyczynowym zdań przyczynowych), ale niską precyzją. Chciałbym zapytać:

  1. Jak trenować NLTK zbudować gramatyki regexp automatycznie wydobycia szczególny rodzaj zdań.
  2. Czy ktoś kiedykolwiek próbował wydobywać zdania przyczynowe. Przykład zdania przyczynowe są:

    • Nie było złe warunki sanitarne w miejscowości, w konsekwencji, miała problemy zdrowotne.

    • Woda była nieczysta w jej wiosce, Z tego powodu cierpiała na od pasożytów.

    • Miała problemy zdrowotne z powodu złych warunków sanitarnych w wiosce. Chciałbym wyodrębnić tylko powyższy typ zdania z dużego tekstu .

Odpowiedz

6

Miał krótką dyskusję z autorem książki: "Python przetwarzanie tekstu z NLTK 2.0 Cookbook", Mr.Jacob Perkins. Powiedział: "uogólniona gramatyka zdań jest dość trudna, ale zamiast tego sprawdziłbym, czy można znaleźć typowe wzorce znaczników, i użyć ich, ale zasadniczo dokonujesz klasyfikacji poprzez dopasowanie regexp." Parsowanie jest zwykle używane do wyodrębniania zwrotów w zdanie, lub po prostu wytworzyć głębokie parsowanie zdania, ale próbujesz tylko zidentyfikować/wydobyć zdania, dlatego uważam, że klasyfikacja jest znacznie lepszym podejściem. Rozważ dodanie do tego oznaczonych słów jako cech, gdy spróbujesz tego, ponieważ gramatyka może być znaczący. " odrywając propozycje Patrzyłem na zdaniach przyczynowych miałem i okazało się, że te zdania mają słowa jak

consequently 
as a result 
Therefore 
as a consequence 
For this reason 
For all these reasons 
Thus 
because 
since 
because of 
on account of 
due to 
for the reason 
so, that 

Te słowa są łączący przyczynowo-skutkowy w zdaniu. A teraz, używając tych łączników, łatwo jest wyodrębnić zdania przyczynowe.