Domanda

Ho bisogno di un modello per le seguenti attività:

Una sequenza di parole, con i suoi tag POS. Voglio giudicare se questa sequenza di parole è una frase di sostantivo o no.

Un modello a cui riesco a pensare è hmm.

Per quelle sequenze che sono frase di sostantivo, alleniamo un hmm (hmm+). Per questi non sono una frase di sostantivo, proviamo un hmm (hmm-). E quando facciamo previsione per una sequenza, possiamo calcolare P (sequenza | hmm+) e p (sequenza | hmm-). Se il primo è più grande, pensiamo che questa frase sia una frase sostantivo, altrimenti non lo è.

Che ne pensate? E hai altri modelli adatti a questa domanda?

È stato utile?

Soluzione 3

Il mio intuizione è che un hmm non è il modello giusto. Può essere usato per indovinare i tag POS, derivando la sequenza di tag con le più alte probabilità basate su probabilità precedenti e probabilità condizionali da un token all'altro.

Per una frase di nomi completa non vedo come si abbina questo modello.

Qualsiasi approccio basato sulla probabilità sarà molto difficile da allenarsi, perché le frasi dei nomi possono contenere molti token. Questo rende davvero molte combinazioni. Per ottenere utili probabilità di formazione, hai bisogno di set di allenamento davvero enormi.

Potresti iniziare rapidamente e facilmente sufficientemente buono emettendo una serie di regole grammaticali, ad esempio espressioni regolari, oltre tag POS seguendo la descrizione in

http://en.wikipedia.org/wiki/noun_phrase#components_of_noun_phrase

o qualsiasi altra descrizione linguistica delle frasi dei nomi.

Altri suggerimenti

Da quello che ho capito, hai già tag POS per la sequenza di parole. Una volta che hai tag per la sequenza di parole, non è necessario utilizzare HMM per classificare se la sequenza è un NP. Tutto quello che devi fare è cercare modelli delle seguenti forme:

  1. determinante seguito da nome

  2. aggettivo seguito da sostantivo

  3. determinante seguito da aggettivo seguito da sostantivo

eccetera

Come qualcuno ha appena menzionato, gli HMM sono usati per ottenere tag POS per una nuova sequenza di parole. Ma per questo hai bisogno di un corpus taggato per allenare l'Hmm. Ci sono alcuni corpus taggati disponibili nel software NLTK.

Se le sequenze sono già contrassegnate, usa le regole grammaticali come menzionato nella risposta precedente.

Le persone usano HMMS per etichettare le frasi dei nomi in frasi marcate in POS, ma la configurazione tipica del modello non funziona nel modo in cui stai descrivendo.

Invece, l'installazione (vedi Chunk Tagger-Statistical Riconosciuto di Noun Frasi (PDF) e Riconoscimento di entità denominata utilizzando un chunk tagger basato su HMM (PDF) per esempi) è usare un HMM con tre stati:

  • O (non in un NP),
  • B (inizio di un NP),
  • Io (in un NP, ma non l'inizio).

A ogni parola in una frase verrà assegnato uno degli stati da HMM. Ad esempio, la frase:

Il/dt boy/nn hit/vt the/dt palla/nn con/pp the/dt rosso/agg bat/nn ./.

Potrebbe essere idealmente etichettato come segue:

The/dt B ragazzo/nn io Hit/Vt O The/dt B palla/nn io con/pp O The/dt B rosso/agg io Bat/nn io ./. O

Le transizioni tra questi tre stati HMM possono essere limitate in base alla conoscenza preliminare di come si comporteranno le sequenze; In particolare, puoi passare solo a I da B, ma le altre transizioni sono tutte possibili con probabilità diversa da zero. È quindi possibile utilizzare Baum-Welch su un corpus di testo senza etichetta per allenare il tuo Hmm (per identificare qualsiasi tipo di pezzo-vedi Semplice induzione grammatica non supervisionata da testo grezzo con modelli a stato finito a cascata (PDF) per un esempio) o una sorta di metodo di massima verosimiglianza con un corpus di testo etichettato (nel caso in cui stai cercando specificamente frasi di sostantivo).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top