2012-10-25 21 views
9

Sto estrapolando frasi causali dalle segnalazioni di incidenti sull'acqua. Sto usando NLTK come strumento qui. Ho creato manualmente la grammatica regExp prendendo 20 strutture di frasi causali [vedi esempi sotto]. La grammatica costruita è di tipoEstrazione di frasi causali con Python NLTK

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

Ora la grammatica ha il 100% di richiamo sul set di prova (ho costruito il mio giocattolo insieme di dati con 50 causale e 50 frasi non causali), ma una bassa precisione. Vorrei chiedere:

  1. come addestrare NLTK per costruire automaticamente la grammatica regexp per estrarre particolare tipo di frasi.
  2. Qualcuno ha mai provato a estrarre le frasi causali. Esempio frasi causali sono:

    • C'era scarsa igiene in paese, di conseguenza, aveva problemi di salute.

    • L'acqua era impura nel suo villaggio, per questo motivo ha sofferto di da parassiti.

    • Ha avuto problemi di salute a causa della scarsa igiene nel villaggio. Vorrei estrarre solo il tipo di frasi sopra da un testo grande .

risposta

6

avuto una breve discussione con l'autore del libro: "Python Processing Testo NLTK 2.0 Cookbook", Mr.Jacob Perkins. Ha detto, "una grammatica generalizzata per le frasi è piuttosto difficile, vorrei invece vedere se è possibile trovare modelli di tag comuni e usarli, ma in sostanza si fa una classificazione per corrispondenza delle espressioni regolari. L'analisi viene solitamente utilizzata per estrarre le frasi all'interno di un frase, o per produrre alberi di analisi profondi di una frase, ma stai solo cercando di identificare/estrarre le frasi, motivo per cui penso che la classificazione sia un approccio molto migliore. Considera di includere parole taggate come caratteristiche quando provi questo, dato che la grammatica potrebbe essere significativo. " prendendo i suoi suggerimenti ho guardato le frasi causali che ho avuto e ho scoperto che queste frasi hanno parole come

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 

Queste parole sono la causa e l'effetto di collegamento in una frase. E ora usando questi connettori è facile estrarre frasi causali.

Problemi correlati