2009-02-23 15 views
11

Binarización es el acto de transformar las coloridas características de una entidad en vectores de números, la mayoría de las veces vectores binarios, para hacer buenos ejemplos de algoritmos clasificadores.Binarización en procesamiento de lenguaje natural

Si queremos binarizar la oración "El gato se comió al perro", podríamos comenzar asignando a cada palabra una identificación (por ejemplo cat-1, ate-2, the-3, dog-4) y luego simplemente reemplace la palabra por su ID dando el vector < 3,1,2,3,4>.

Dados estos ID también podríamos crear un vector binario dando a cada palabra cuatro ranuras posibles, y establecer la ranura correspondiente a una palabra específica con una, dando el vector < 0,0,1,0,1,0 , 0,0,0,1,0,0,0,0,0,1>. El último método es, por lo que yo sé, se conoce comúnmente como el método de la bolsa de palabras.

Ahora mi pregunta, ¿cuál es el método de binarización mejor cuando se trata de describir las características para el procesamiento del lenguaje natural en general, y la transición de la dependencia de análisis basado (con el algoritmo Nivres) en particular?

En este contexto, no queremos codificar la frase completa, sino el estado actual del análisis, por ejemplo, la palabra más alta en la pila y la primera palabra en la cola de entrada. Como el orden es muy relevante, esto excluye el método de la bolsa de palabras.

Con mejor, me refiero al método que hace que los datos sean más inteligibles para el clasificador, sin utilizar memoria innecesaria. Por ejemplo, no quiero una palabra bigram para usar 400 millones de características para 20000 palabras únicas, si solo el 2% de los bigrams realmente existen.

Dado que la respuesta también depende del clasificador en particular, estoy interesado principalmente en los modelos de entropía máxima (liblinear), máquinas de vectores de soporte (libsvm) y perceptrones, pero también se aceptan respuestas que se aplican a otros modelos.

+1

No sé qué es la binarización, y estoy seguro de que muchas otras personas están en el mismo barco, por lo que sería bueno si pudiera dar una explicación de lo que significa para aquellos de nosotros que no estamos familiarizados con la PNL (si no es para ayudarnos a responder, al menos para ayudar a comprender el tema). –

+0

Lo mismo aquí: ¿puedes definir la binarización por favor? –

+0

Quizás pueda definir lo que quiere decir con "mejor", es decir, con la mayor eficiencia de espacio, la mayor eficiencia de procesamiento, la más descriptiva. – scotta

Respuesta

4

Esto es realmente una pregunta muy compleja. La primera decisión que tiene que tomar es si va a lemmatize sus tokens de entrada (sus palabras). Si hace esto, disminuye drásticamente su conteo de tipos, y su análisis de sintaxis se vuelve mucho menos complicado. Sin embargo, se requiere mucho trabajo para lematizar un token. Ahora, en un lenguaje informático, esta tarea se reduce en gran medida, ya que la mayoría de los lenguajes separan las palabras clave o nombres variables con un conjunto bien definido de símbolos, como el espacio en blanco o un punto o cualquier otra cosa.

La segunda decisión crucial es qué vas a hacer con los datos post-facto. El método de "bolsa de palabras", en la forma binaria que ha presentado, ignora el orden de las palabras, que está completamente bien si está haciendo summarization of a text o tal vez una búsqueda al estilo de Google donde no le importa donde las palabras aparecen, mientras aparezcan. Si, por otro lado, está construyendo algo así como un compilador o un analizador, el orden es muy importante. Puede usar el método token-vector (como en su segundo párrafo), o puede ampliar el enfoque de bolsa de palabras de modo que cada entrada que no sea cero en el vector bolsa-de-palabras contenga la posición de índice lineal del token en la frase.

Finalmente, si va a compilar parse trees, hay razones obvias por las que le conviene usar el método token-vector, ya que es una gran molestia mantener los identificadores de sub-frase para cada palabra en el vector de bolsa de palabras, pero muy fácil de hacer "sub-vectores" en un token-vector. De hecho, Eric Brill usó una secuencia de identificación de token para su part-of-speech tagger, que es realmente genial.

¿Le importa si le pregunto en qué tarea específica está trabajando?

+0

¡Gracias por un buen comienzo de respuesta! :) Definitivamente verifico los detalles de la secuencia de token-id de Brills. Acerca del uso de la representación BOW con un número entero para representar el índice lineal de tokens, ¿realmente crees que esto funcionaría (daría buen rendimiento) con un clasificador SVM? –

+0

La tarea específica es una implementación del algoritmo de análisis basado en la transición del tiempo lineal de Nivres junto con el clasificador de entropía máximo de liblinear. –

+0

@sganslandt: para los clasificadores SVM, puede pensar en usar n-grams (bigrams, trigrams, etc.) en lugar de tokens, esto conserva el orden contextual local, pero ignora el orden global. A continuación, puede utilizar una bolsa de palabras antigua y mantener cierta información de contexto. – Mike

0

[No es una respuesta directa] Todo depende de lo que intenta analizar y procesar, pero para el procesamiento general de frases cortas (por ejemplo, IVT), otro método es usar redes neuronales para aprender los patrones. Esto puede ser muy acertadas para vocubularies más bien pequeñas

3

binarización es el acto de transformar características de colores de una entidad en vectores de números, más a menudo vectores binarios, para hacer buenos ejemplos para clasificadores algoritmos.

sobre todo me he encontrado con características numéricas que toman valores entre0 y 1 (no binario como usted describe), que representa la relevancia de la función particular en el vector (entre 0% y 100%, donde 1 representa el 100%). Un ejemplo común para esto son los vectores tf-idf: en el vector que representa un documento (o frase), tiene un valor para cada término en todo el vocabulario que indica la relevancia de ese término para el documento representado.

Como Mike ya dijo en his reply, este es un problema complejo en un campo amplio. Además de sus punteros, puede que le resulte útil buscar en algunas técnicas information retrieval como vector space model, vector space classification y latent semantic indexing como puntos de partida. Además, el campo de word sense disambiguation trata mucho con feature problemas de representación en PNL.

Cuestiones relacionadas