Utilizzo di grammatiche per estrarre citazioni bibliografiche

7

Il mio compito risiede nell'area text mining / etichettatura, estrazione più particolare di citazioni bibliografiche (riferimenti) dal testo semplice, come mostrato qui:

Fondamentalmente,periltestodiinputchel'algoritmodovrebbericonoscere:

  • L'inizioelafinedellacitazione
  • Nomedeldiario,titolo,autore,problema,volume,pagine

Questocompitoeragiàstatoaffrontato,ades. Citation Parsing Using Maximum Entropy and Repairs (Ng Yong Kiat, 2005) , che ha dimostrato che CRF i modelli offrono risultati migliori di MEMM o approcci basati su pattern . Attualmente ci sono due progetti, che fanno il lavoro:

Mentre i risultati degli approcci menzionati sono già noti (e sono molto buoni), mi è stato dato un compito di fare lo stesso, ma usando le grammatiche context-free. In effetti, l'informazione sembra essere molto strutturata, ma non sono sicuro che questo approccio possa sovraperformare la CRF sulla sensibilità, almeno spero che possa battere sulla precisione.

La mia idea è la seguente:

  • Definisci le regole grammaticali fisse per tipi già noti:
    YEAR → (19|20)\d\d | \d\d\d\d
    PAGE → \d{1,3}\-\d{1,3} | e\d{1,3}
    ISSUE → \d{1,3}
  • È possibile dedurre dall'allenamento impostare le probabilità delle alternative alle regole, ad es.

    PAGE → \d{1,3}\-\d{1,3} with P=0.8 | e\d{1,3} with P=0.2
  • Dal set di allenamento pre-annotato generate le regole di alto livello (tutti i caratteri tra non-terminali sono terminali):
    CITATION → AUTHORS, JOURNALTITLE, ISSUE, PAGES, YEAR | AUTHORS, BOOKTITLE, VOLUME, CHAPTER, CHAPTERTITLE, EDITORS, PUBLISHER, PUBPLACE | ...
    CITATIONS → CITATION | CITATIONS; CITATION | CITATIONS; and CITATION

I luoghi problematici sono:

  • AUTHORS : non esiste una regola fissa per loro, ma si può scrivere una funzione, che può segnare che il testo dato assomiglia ad un autore. Anche la lista dei possibili cognomi (inglesi) non è così grande, ma se creo le migliaia di regole rallenterà il parser della grammatica. Diciamo per gli autori che abbiamo una funzione di calcolo del punteggio, che per un dato input restituisce un numero [0 .. 1] che riflette il modo in cui l'input sembra davvero un autore. Il parser della grammatica dovrebbe alimentare tutte le varianti possibili per AUTHORS e fermarsi su uno con il punteggio migliore.
  • JOURNALTITLE : la stessa storia. Non esiste ovviamente una regola generale per definirlo. C'è una lista di tutti i periodici, ma poi viene anche il sottoprocesso dell'abbreviazione: Ann. NY Acad. Sci. = Ann N.Y. Academy Sci = Annali dell'Accademia delle Scienze di New York . Di nuovo, possiamo definire una funzione di punteggio per quello; nel peggiore dei casi la funzione può misurare la distanza tra la puntura di input e tutti i titoli di giornale conosciuti usando l'algoritmo Damerau-Levenshtein .
  • Il testo come "Vol", "Capitolo", "modificato da" può essere molto utile come terminatori che prefissano i valori corrispondenti (e quindi riducono l'ambiguità della grammatica), ma possono essere identificati e appresi automaticamente?
  • Lo stesso per i terminatori prima e dopo la citazione, che può essere molto utile (forse accelererà l'analisi):
    SUPERCITATION → ( CITATIONS ) | ( see, e.g., CITATION ) | see, for example, CITATION | described in, e.g., CITATION | is disclosed by CITATION
    Ha senso "hardcode" o cercare di impararli?
  • Il testo "rumore" tra le citazioni: come affrontarlo?

L'obiettivo dell'analisi lessicale non è forse quello di trovare l'albero di analisi più probabile, ma anche quello di massimizzare le funzioni AUTORI e JOURNALTITLE.

Qualcuno può consigliarmi:

  • Se SCFG è il modo giusto per affrontare il problema? Se sì, come è possibile adattare questo approccio per creare un albero di analisi basato sulle probabilità e anche sulle funzioni di calcolo del punteggio?
  • Ci sono altri lavori / articoli relativi?
  • Esistono librerie che possono aiutare a frammentare il testo (scritto in un modo che può essere applicato anche per esempio per il testo cinese)? Ho trovato alcuni mostri come UIMA , Mallet , MinorThird ... Mi chiedo della tua esperienza personale quando li uso per il compito come sopra .

Grazie in anticipo per qualsiasi risposta.

    
posta dma_k 15.08.2011 - 16:33
fonte

1 risposta

1

Uno dei punti di partenza da tenere in considerazione è il corretto riconoscimento dei nomi e la tokenizzazione. Uno dei documenti più noti è questo , e anche molte nuove presentazioni in ACM hanno affrontato questo problema. Questo aiuterà con le citazioni in linea.

    
risposta data 18.08.2011 - 21:26
fonte

Leggi altre domande sui tag