pitón básica de programación: Python derivada del procesamiento del lenguaje natural, formas de palabras y explicar el código máxima algoritmo de coincidencia

Este documento se centra en detener y se introducen muestras lematización y el algoritmo de coincidencia máxima y el código, la implementación de Python, vamos a echar un vistazo a los contenidos específicos.

procesamiento del lenguaje natural es una operación muy importante que se conoce como despalillado y lematización, ambos muy similares. Son dos forma estandarizada importante palabra manera, son capaces de lograr el propósito de combinar efectivamente la forma de la palabra, las dos conexiones de ambos son diferentes.

1, derivada (derivadas,)

定义: Stemmingistheprocessforreducinginflected (orsometimesderived) wordstotheirstem, baseorrootform-generallyawrittenwordform.

Explicar, Stemming es extraer el tallo o forma de la raíz de la palabra (no necesariamente expresar la semántica completos).

NLTK proporciona tres más interfaz derivada común, es decir PorterStemmer, LancasterStemmer y SnowballStemmer.

Extracción PorterStemmer Porter derivada de algoritmos, ejemplos mirada

>>> from nltk.stem.porter import PorterStemmer 
>>> porter_stemmer = PorterStemmer() 
>>> porter_stemmer.stem(‘maximum') 
u'maximum'
>>> porter_stemmer.stem(‘presumably') 
u'presum'
>>> porter_stemmer.stem(‘multiply') 
u'multipli'
>>> porter_stemmer.stem(‘provision') 
u'provis'
>>> porter_stemmer.stem(‘owed') 
u'owe'

Stemmer Lancaster algoritmo de extracción de tallo, ejemplos mirada

>>> from nltk.stem.lancaster import LancasterStemmer 
>>> lancaster_stemmer = LancasterStemmer() 
>>> lancaster_stemmer.stem(‘maximum') 
‘maxim' 
>>> lancaster_stemmer.stem(‘presumably') 
‘presum' 
>>> lancaster_stemmer.stem(‘presumably') 
‘presum' 
>>> lancaster_stemmer.stem(‘multiply') 
‘multiply' 
>>> lancaster_stemmer.stem(‘provision') 
u'provid'
>>> lancaster_stemmer.stem(‘owed') 
‘ow'

Stemmer bola de nieve bola de nieve algoritmo de extracción de tallo, ejemplos mirada

>>> from nltk.stem import SnowballStemmer 
>>> snowball_stemmer = SnowballStemmer(“english”) 
>>> snowball_stemmer.stem(‘maximum') 
u'maximum'
>>> snowball_stemmer.stem(‘presumably') 
u'presum'
>>> snowball_stemmer.stem(‘multiply') 
u'multipli'
>>> snowball_stemmer.stem(‘provision') 
u'provis'
>>> snowball_stemmer.stem(‘owed') 
u'owe'

2, Lematización (lematización)

Definiciones: La lematización (orlemmatization) inlinguistics, istheprocessofgroupingtogetherthedifferentinflectedformsofawordsotheycanbeanalysedasasingleitem.

Visible, lematización es cualquier forma de lenguaje a una reducción de la forma general de palabras (para expresar la semántica completos). Por el contrario, derivada simples formas de la palabra ligeros modo de combinación, el resultado final se obtiene del tallo, no necesariamente tiene importancia práctica. proceso Lematización es relativamente compleja, los resultados obtenidos para el prototipo de la palabra, capaz de llevar a un cierto sentido, en comparación con derivados, más investigación y aplicación.

Daremos un ejemplo más complejo de combinar con el algoritmo MaxMatch más tarde.

Introducido a frenar y lematización y diferencias aquí:

Lematización (lematización), es una reducción de cualquier forma de una forma de la palabra lenguaje general (capaz de expresar una semántica completos), y derivados

(Stemming,) es la eliminación del tallo, o forma de la raíz de la palabra (no necesariamente capaz de expresar una semántica completos). Lematización y la palabra forma derivada ha sido estandarizada categorías

forma importante, son capaces de lograr el propósito de combinar efectivamente la forma de la palabra, hay diferencias entre las dos conexiones tanto

Contactar con empresa común y se resume en las siguientes cuatro áreas:

(1) unidad de propósito. Partiendo y objetivo Lematización será simplificada o se fusionan en vástago (STEM) morfología flexiva o formas de la palabra derivada

O prototipo forma básica, es un proceso de unificación de las diferentes formas de las palabras fusionado.

(2) Resultados de sección transversal. Despalillado y Lematización relación no excluyentes entre sí, como resultado de alguna cruz. Parte de la palabra utilizar estos dos métodos para lograr los mismos efectos palabra forma de transición. Tales como la palabra "perros"

Secar como "perro", que es también el prototipo para el "perro".

Similar aplicación (3) la corriente principal. Actualmente la aplicación realización despalillado y lematización corriente principal están utilizando las reglas de la lengua o el uso de extracto de tallo diccionario asignación existente, o conseguir la palabra prototipo.

(4) aplicaciones similares. Utilizado principalmente en la recuperación de información y el texto, el procesamiento del lenguaje natural, tanto estas aplicaciones son los pasos básicos

La diferencia se resume en las siguientes cinco áreas:

(1) En principio, derivada principalmente utilizando el método "reducido" convertirá la palabra de contener, tales como los "gatos" tratados como "cat", el tratamiento "eficaz" para el "efecto". El Lematización principalmente una "transición"

El método, la palabra en su forma original, al igual que "Drove" entendido como "unidad", la "conducción" tratados como "unidad".

(2) la complejidad, el método derivado es relativamente simple, el principio de formas de la palabra también es necesario para devolver la palabra prototipo, la necesidad de analizar la morfología, no sólo para fijar la transformación, sino también para el reconocimiento de voz, pero para distinguir la misma forma de la palabra

Las diferencias en las distintas palabras prototipo. POS tagging precisión de un impacto directo sobre la exactitud de Lematización, por lo Lematización más complejo.

(3) sobre la aplicación, aunque derivada corriente principal y Lematización método similar al implementado, pero se han centrado en la aplicación específica. Implementación lematización lleva a cabo principalmente utilizando las reglas cambian afijo eliminación y reducción para lograr el efecto simplificación de la palabra. Palabra principio formulario también relativamente complicado, cambios morfológicos complejos, simplemente no bien hecho según las reglas. Que es más dependiente del diccionario, inflexiones y el prototipo de mapeo, generar un diccionario de palabras válidas.

(4) en los resultados derivados Lematización y también algunas diferencias. Derivados resultados pueden no estar completos, con el significado de las palabras, pero sólo una parte de la palabra, tales como "reactivación" derivada resultado es "Reviv", "ailiner" derivada resultado es "aerolin". El resultado después de Lematización obtenido por el proceso es cierto sentido, una palabra completa, la palabra es generalmente eficaz en el diccionario.

(5) en el campo de aplicación, tenemos el mismo enfoque. Aunque ambos de los cuales se utilizan en la recuperación de información y procesamiento de texto, pero diferente énfasis. Partiendo más se aplica al campo de la recuperación de la información, tales como Solr, como Lucene, búsqueda ampliada para el tamaño de grano grueso. Lematización más importante para ser utilizado en la minería de texto, el procesamiento del lenguaje natural, para más, el análisis de texto más preciso de grano fino y de expresión

Por el contrario, derivada simples formas de la palabra ligeros modo de combinación, el resultado final se obtiene del tallo, no necesariamente tiene importancia práctica. proceso Lematización es relativamente compleja, los resultados obtenidos para el prototipo de la palabra, capaz de llevar a un cierto sentido, en comparación con derivados, más investigación y aplicación

3, el algoritmo de coincidencia máxima (MaxMatch)

MaxMatch en el algoritmo de procesamiento de lenguaje natural china utiliza a menudo por palabra (tal vez del nombre se puede pensar que la estrategia ya codicioso es un diseño basado en el algoritmo). Por lo general, entre cada palabra en el vocabulario Inglés a dividir por un espacio, lo cual es muy sencillo, pero los chinos no tienen este recorrido. Por ejemplo, "Me encanta la República Popular de China", esta frase es el resultado de la segmentación puede ser tan { 'yo', 'amor', 'China', 'el pueblo', 'República'}, {o es el 'yo', 'amor', 'la República Popular de China'}, obviamente preferimos resultado de la segmentación de este último. Debido a que 'la República Popular de China' los obviamente un nombre propio (poner un punto tal segmentación de palabras de vista no es clara en cuanto a). Elegimos esta última estrategia es el llamado MaxMatch, es decir, el máximo partido. Debido a que 'la República Popular de China' los es claramente mejor que la palabra 'China', 'la gente', 'República' Estas palabras son largas.

Podemos demostrar con el ejemplo de un algoritmo de MaxMatch Inglés (En realidad, es la transformación de China es la misma). Algoritmo reduce gradualmente desde la longitud correcta de la cadena, la cadena con el fin de obtener la máxima longitud posible del partido. Teniendo en cuenta el vocabulario que hemos obtenido puede contener alguna variación del tipo de palabra, por lo que el uso de un lematización, y luego buscar coincidencias en el diccionario de sinónimos.

from nltk.stem import WordNetLemmatizer 
from nltk.corpus import words 
  
wordlist = set(words.words()) 
wordnet_lemmatizer = WordNetLemmatizer() 
  
def max_match(text): 
  pos2 = len(text) 
  result = '' 
  while len(text) > 0:     
    word = wordnet_lemmatizer.lemmatize(text[0:pos2]) 
    if word in wordlist: 
      result = result + text[0:pos2] + ' '
      text = text[pos2:] 
      pos2 = len(text) 
    else: 
      pos2 = pos2-1        
  return result[0:-1]

Para observar el efecto de la aplicación del algoritmo

>>> string = 'theyarebirds'
>>> print(max_match(string)) 
they are birds

Por supuesto, el código anterior sigue siendo una escasez, es decir, cuando hay un caracteres no alfabéticos de la cadena (por ejemplo, de puntuación digital, etc.), puede haber algunos problemas. Los lectores interesados ​​pueden desear probar la versión refinado y mejorado de esta toma de conciencia de sí mismo.

Por último, recomiendo una reunión buena reputación pitón [ Haga clic para entrar ], hay una gran cantidad de veteranos habilidades de aprendizaje, experiencia, habilidades de la entrevista, la experiencia laboral y otra cuota de aprendizaje, más que preparamos cuidadosamente la información introductoria de base cero en los datos reales del proyecto método, cada día los programadores de Python explicar la sincronización de la tecnología, aprendiendo a compartir algunos pequeños detalles tienen que prestar atención y
resumen

Eso es todo por este artículo tallos Python en el procesamiento del lenguaje natural, la morfología y MaxMatch explican el código de algoritmo

Publicado 20 artículos originales · ganado elogios 4 · Vistas a 20000 +

Supongo que te gusta

Origin blog.csdn.net/haoxun11/article/details/104930868
Recomendado
Clasificación