Pregunta

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

Si nos donde a binarizar la frase "El gato se comió el perro", podríamos empezar mediante la asignación de cada palabra un ID (por ejemplo, cat-1, se comió-2, el 3, el perro-4) y luego simplemente reemplazar la palabra por su ID dando el vector <3,1,2,3,4>.

Dadas estas IDs también podríamos crear un vector binario dando a cada palabra cuatro ranuras posibles, y el establecimiento de la ranura que corresponde a una palabra específica con a uno, 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é, que comúnmente se conoce como el método de la bolsa palabras de paso.

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

En este contexto, no queremos para codificar toda la frase, sino más bien el estado actual del análisis sintáctico, por ejemplo la palabra superior de la pila en la primera palabra en la cola de entrada. Puesto que el fin es altamente relevante, esto excluye el método de la bolsa palabras de paso.

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

Dado que la respuesta también depende del clasificador particular, estoy interesado principalmente en modelos de entropía máxima (LIBLINEAR), el apoyo de máquinas de vectores (libSVM) y perceptrones, pero las respuestas que se aplican a otros modelos también son bienvenidos.

¿Fue útil?

Solución

Esto es realmente una cuestión muy compleja. La primera decisión que tiene que tomar es si lemmatize sus tokens de entrada (sus palabras). Si hace esto, se disminuye dramáticamente su recuento tipo, y su analizador sintáctico recibe una gran cantidad menos complicado. Sin embargo, se necesita mucho trabajo para lemmatize un token. Ahora, en un lenguaje de programación, esta tarea se reduce en gran medida, ya que la mayoría de los idiomas separados palabras clave o nombres de variables con un conjunto bien definido de símbolos, como un espacio en blanco o un punto o lo que sea.

La segunda decisión crucial es lo que vas a hacer con los datos post-facto. El método de "bolsa-de-palabras", en forma binaria has presentado, ignora orden de las palabras, que es completamente bien, si está haciendo resumen de un texto o tal vez una búsqueda de estilo de Google en los que no se preocupan donde las palabras aparecen, siempre y cuando aparecen. Si, por el contrario, es como construir algo así como un compilador o intérprete, el orden es muy importante. Puede utilizar el enfoque de red en el vector (como en el segundo párrafo), o puede extender la bolsa de palabras se aproximan de forma que cada distinto de cero entrada en el vector de la bolsa-de-palabras contiene la posición de índice lineal de la ficha en la frase.

Por último, si usted va a ser la construcción de analizar árboles , hay razones obvias por qué te gustaría ir con el enfoque de red en el vector, ya que es un gran problema para mantener la sub-frase iDS para cada palabra en el vector bolsa de palabras, pero muy fácil de hacer "sub-vectores" en una ficha -vector. De hecho, Eric Brill utiliza una secuencia de tokens-id para su etiquetador parte-de-voz, que es muy bien cuidado.

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

Otros consejos

  

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

Yo sobre todo he encontrado con características numéricas que toman valores entre 0 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 100%). Un ejemplo común de esto son tf-idf vectores:. 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 ya se dijo en Mike su respuesta , esta es una problema complejo en un campo amplio. Además de sus punteros, puede que le resulte útil para ver en algunos recuperación de la información técnicas como el vector modelo de espacio de , vector de espacio de clasificación y latente indexación semántica como puntos de partida. Además, el campo de desambiguación lingüística se ocupa mucho con característica cuestiones de representación en PNL.

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

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