Pregunta

Necesito un modelo para las siguientes tareas:

Una secuencia de palabras, con sus etiquetas POS. Quiero juzgar si esta secuencia de palabras es una frase nominal o no.

Un modelo en el que puedo pensar es hmm.

Para aquellas secuencias que son frases nomnables, entrenamos un hmm (hmm+). Para esos no son frase sustantivos, probamos un HMM (hmm-). Y cuando hacemos predicción para una secuencia, podemos calcular P (secuencia | Hmm+) y P (secuencia | Hmm-). Si el primero es más grande, creemos que esta frase es una frase nominal, de lo contrario no lo es.

¿Que piensas de eso? ¿Y tienes otros modelos adecuados para esta pregunta?

¿Fue útil?

Solución 3

Mi presentimiento es que un HMM no es el modelo correcto. Se puede usar para adivinar etiquetas POS, derivando la secuencia de etiquetas con las probabilidades más altas basadas en probabilidades anteriores y probabilidades condicionales de un token a otro.

Para una frase sustantiva completa, no veo cómo coincide este modelo.

Cualquier enfoque basado en la probabilidad será muy difícil de entrenar, porque las frases sustantivas pueden contener muchas fichas. Esto lo convierte en muchas combinaciones. Para obtener probabilidades de capacitación útiles, necesita sets de capacitación realmente enormes.

Puede comenzar de manera rápida y fácilmente un comienzo lo suficientemente bueno creando un conjunto de reglas de gramática, por ejemplo, expresiones regulares, sobre etiquetas POS siguiendo la descripción en

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

o cualquier otra descripción lingüística de frases sustantivos.

Otros consejos

Por lo que entiendo, ya tienes etiquetas POS para la secuencia de palabras. Una vez que tenga etiquetas para la secuencia de palabras, no necesita usar HMM para clasificar si la secuencia es un NP. Todo lo que necesita hacer es buscar patrones de los siguientes formularios:

  1. Determinador seguido de sustantivo

  2. adjetivo seguido de sustantivo

  3. Determinador seguido de adjetivo seguido de sustantivo

etc.

Como alguien acaba de mencionar, los HMM se utilizan para obtener etiquetas POS para una nueva secuencia de palabras. Pero para eso necesitas un corpus etiquetado para entrenar el HMM. Hay algunos corpus etiquetados disponibles en el software NLTK.

Si sus secuencias ya están etiquetadas, simplemente use reglas de gramática como se menciona en la respuesta anterior.

Las personas usan HMM para etiquetar frases de sustantivos en oraciones marcadas con POS, pero la configuración de modelo típica no funciona de la manera que está describiendo.

En cambio, la configuración (ver Reconocimiento estadístico de Tagger de frases de frases sustantivos (PDF) y Reconocimiento de entidad nombrado utilizando un tagger de fragmento basado en HMM (PDF) para ejemplos) es usar un HMM con tres estados:

  • O (no en un NP),
  • B (comienzo de un NP),
  • Yo (en un NP, pero no el comienzo).

Cada palabra en una oración será asignada uno de los estados por el HMM. Como ejemplo, la oración:

El/dt boy/nn hit/vt the/dt ball/nn with/pp the/dt rojo/adj bat/nn ./.

Podría ser idealmente etiquetado de la siguiente manera:

El/dt B chico/nn yo Hit/VT O el/dt B bola/nn yo con/pp O el/dt B rojo/adj yo murciélago yo ./. O

Las transiciones entre estos tres estados HMM pueden limitarse en función del conocimiento previo de cómo se comportarán las secuencias; En particular, solo puede hacer la transición a I desde B, pero las otras transiciones son posibles con una probabilidad distinta de cero. Luego puede usar Baum-Welch en un corpus de texto sin etiqueta para entrenar su HMM (para identificar cualquier tipo de fragmento, ver en absoluto Inducción de gramática simple sin supervisión del texto sin procesar con modelos de estado finito cascado (PDF) para un ejemplo), o algún tipo de método de máxima verosimilitud con un corpus de texto etiquetado (en caso de que busque específicamente frases sustantivos).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top