procesamiento del lenguaje natural -2- palabra (Word segmentación)


 
Enlaces: [directorio del artículo completo]


En primer lugar, la introducción del problema

 Para la oración de entrada: "A menudo tenemos diferencias de opinión,"
 En primer lugar, queremos expresar cómo en el equipo: expresado en palabras, con un vocabulario para expresar, o directamente a una frase entera como un todo integrado.
 Se puede imaginar fácilmente, palabra que significa la expresión incompleta en la frase el mismo significado varió prácticamente ilimitada, no hay un vocabulario fijo de uno o más semántica, muy adecuado para la expresión del significado inherente de la frase.
 


En segundo lugar, la palabra de los varios métodos

 Ahora que sabemos que para usar las palabras de la palabra, supongamos que tenemos los diccionarios de la siguiente manera (algunos del diccionario es de código abierto):
  [ "nosotros", "a menudo", "Sí", "tiene la intención ⻅", "que significa ⻅", "diferencias"]
 entonces podemos empezar una palabra

(A) coincidente máximo hacia adelante (a juego hacia adelante-max)

  En primer lugar, establecer el tamaño de la longitud máxima es de 4, y luego dividir la palabra de la frase anterior con un diccionario. (Entre corchetes [] a una serie de intereses)
  en la primera ronda:
  [tenemos] menudo desacuerdo (tomar las primeras cuatro palabras (longitud máxima), encontró que "a menudo" no está en el diccionario)
  [por] que a menudo tienen diferencias de opinión (tomar las tres primeras palabras, encontraron que "nosotros" no estaba en el diccionario)
  [que] menudo tenemos diferencias de opinión (tomamos las dos primeras palabras, encontró que "nosotros" en el diccionario, al final)
  a esta palabra es: nosotros | menudo tenemos opiniones diferencias

  Segunda ronda:
  [intencionalmente] menudo ver las diferencias (tomar las primeras cuatro palabras (longitud máxima), encontró que "a menudo deliberadamente" no está en el diccionario)
  [] menudo tienen diferencias de opinión (tomar las tres primeras palabras, encontró que "a menudo" no está en el diccionario en)
  [a menudo] tienen diferencias de opinión (toman las dos primeras palabras, encontró que "a menudo" en el diccionario, al final)
  en esta palabra es: nosotros | menudo | tenemos diferencias de opinión

  Tercera ronda:
  [minutos] se expresó colector (dar los primeros cuatro caracteres (la longitud máxima), encontró que "no hay puntuación de opinión" no está en el diccionario)
  [] ha dividido vistas (teniendo las tres primeras palabras, encontró que "no son comentarios" en el diccionario al final)
  en esta palabra es: nosotros | menudo | hemos vistas | dividida

  La cuarta teoría:
  [diferencias] (no se ajusta a la longitud máxima de 4 en la elección de todos los demás, encontró que las "diferencias" en el diccionario, al final)
  En esta palabra es: Nosotros | menudo | hemos vistas | dividida
 

(Ii) después de (a juego hacia atrás-max) para que coincida con el máximo

  En este momento, se supone que la longitud máxima de 4 para que coincida con el máximo antes del partido sigue siendo similar a la máxima, solamente una (hacia adelante), a una sentencia (hacia atrás) al final de la frase. Aquí se puede entender en términos de la coincidencia máxima hacia adelante.
  Primera ronda:
  A menudo tenemos [desacuerdo]
  nos interesa a menudo en las diferencias [ver]
  que a menudo tienen opiniones [diferencias]
  En esta palabra es: A menudo tenemos opiniones | divididos

  La segunda ronda:
  Hemos tenido nuestra [por]
  que [a menudo] tenemos comentarios
  en este momento es la palabra: A menudo | hemos vistas | dividida

  Tercera ronda:
  [Nosotros] menudo
  me [a menudo]
  que [a menudo]
  En esta palabra es: Nosotros | menudo | hemos vistas | dividida

  La cuarta teoría:
  [Nosotros]
  En esta palabra es: Nosotros | menudo | hemos vistas | dividida
 

(C) teniendo en cuenta la semántica (Incorporar Semántica)

  Considere el nombre sugiere semántica, es determinar la semántica, en particular la frase para generar toda la posible división, preferiblemente en los que la segmentación devuelto.
  El método puede ser usado para juzgar la calidad del modelo de lenguaje (Lenguaje Modelo).
  ¿Qué modelo de lenguaje es:
  por palabras sub-sentencia buenas: "Estamos | menudo | tienen vistas | diferencias", se supone que la probabilidad de ocurrencia de las palabras conocidas en el diccionario de sinónimos (esta probabilidad por la página de estadísticas, reservar con antelación para calcular)

Unigram modelo de lenguaje es: P (S 0 ) = P ( "nosotros") * P ( "regular") * P ( "tener opiniones") * P (la "diferencia")
bigrama modelo de lenguaje es: P (S 0 ) = P ( "nosotros") * P ( "a menudo" | "nosotros") * P ( "tener opiniones" | "a menudo") * P ( "diferencias" | "tener opiniones")
trigrama del modelo de lenguaje es: P (S 0 ) = P ( "nosotros") * P ( "a menudo" | "nosotros") * P ( "hay opiniones" | "nosotros", "a menudo") * P ( "diferencias" | "a menudo", "tener opiniones" )

  De hecho, es fácil ver que el n-gramo del modelo de lenguaje, n es pocos, teniendo en cuenta la probabilidad de que la primera palabra n.

Tenga en cuenta que dado que el número de veces que cada palabra aparece en todo el texto puede ser muy pequeña, por lo que el valor de probabilidad puede ser muy muy muy pequeña, lo que resulta en un desbordamiento negativo, también lo hará la probabilidad de un conjunto de log (). Desde log 10 (,00000001) = -. 8, se ve valor decreciente gradualmente, y log 10 es una función monótonamente creciente de la resultado de la comparación del mismo tamaño que la probabilidad inicial.

  Ahora sabemos que considerar el uso de la semántica, pero es posible que desee pensar, suponiendo que existe una sentencia de una longitud máxima de n términos, a continuación, en el caso de modelos de lenguaje de tiempo Unigram bajo un cálculo caso palabra amable es O (n), para generar Todo lo que necesita dividir O ((n-1)!). Así complejidad del tiempo total es O (n * (n-1)!) = O (n!), Y esta complejidad es sólo para una sentencia si la sentencia es una serie de una gran cantidad de tiempo, entonces insoportable, por lo que necesita para optimizar este método en realidad puede utilizarlo.
 

(D) Considere la optimización semántica (algoritmo de Viterbi)

  De lo anterior se sabe que "teniendo en cuenta la semántica" se divide en dos etapas, en primer lugar división agrícola, y la segunda palabra de la segmentación de los juicios de bueno. Dos áreas que no están optimizadas fácilmente, tal vez desee reflexionar sobre los dos aspectos juntos.
Supongamos ahora que hay una sentencia P n- longitud es n, el objetivo es obtener la mejor segmentación de la frase. A continuación, el sub-pregunta es P n-. 1- división frase tiene la mejor (es decir, menos el P n- última palabra).
  Este problema con la subestructura óptima pensar que pronto será capaz de utilizar la programación dinámica para resolverlo. La fórmula es:
P n = m a x x : 1 n 1 { P x + D [ x ] [ n ] } P_n = max_ {x: 1 \ rightarrow n-1} \ {P_ {x} + D [x] [n] \}

 Explica:
 P n se refiere al modelo de lenguaje probabilidad S frase n-palabra antes de la mejor segmentación P (P aquí es el log), D [x] [ n] es la probabilidad de que la palabra de x para separar el n , D [x] [n] es -1 si x representa el n vocabulario independiente no es en el léxico. ¿Por qué es la probabilidad del sumador se convierte como log 10 (P . 1 * P 2 ) = log 10 P . 1 + log 10 P 2 . (Este algoritmo es un poco como el mayor algoritmo de aumento de subsecuencia, según habituales generalmente para el mínimo, entonces P se llevará a cabo -log).
 Cómo encontrar la mejor palabra:
 actualizar el mejor momento para usar una sola palabra de una matriz grabada.

 


En tercer lugar, la palabra Resumen

método específico
Basado en las reglas de coincidencia La coincidencia máxima hacia adelante, a juego máximo hacia atrás
Método basado en probabilidad y estadística Idioma modelo LM, ocultos de Markov modelo HMM, CRF y otros FRC

  La segmentación puede ser considerada como habiendo sido resuelto, porque ya tiene herramientas de segmentación sofisticados, tales como: palabra jieba, SnowNLP, LTP, HanNLP.

发布了11 篇原创文章 · 获赞 96 · 访问量 6万+

Supongo que te gusta

Origin blog.csdn.net/weixin_42159233/article/details/104184071
Recomendado
Clasificación