¿Qué es el etiquetado de parte del discurso (POS)? Es un proceso de convertir una oración en formas: lista de palabras, lista de tuplas (donde cada tupla tiene una forma (palabra, etiqueta)). La etiqueta en caso de es una etiqueta de parte del discurso e indica si la palabra es un sustantivo, un adjetivo, un verbo, etc. ¿Qué es el etiquetado de retroceso? Es una de las características más importantes de SequentialBackoffTagger , ya que permite combinar los etiquetadores. La ventaja de hacer esto es que si un etiquetador no conoce el etiquetado de una palabra, puede pasar esta tarea de etiquetado al siguiente etiquetador de retroceso. Si ese no puede hacerlo, puede pasar la palabra al siguiente etiquetador de retroceso, y así sucesivamente hasta que no queden etiquetadores de retroceso para verificar. Código #1 : Realización de etiquetado
Python3
# Loading Libraries from nltk.tag import SequentialBackoffTagger from nltk.tag import DefaultTagger from nltk.tag import UnigramTagger from nltk.corpus import treebank # initializing training and testing set train_data = treebank.tagged_sents()[:3000] test_data = treebank.tagged_sents()[3000:] # Defining Tag tag1 = DefaultTagger('NN') # Tagging tag2 = UnigramTagger(train_data, backoff = tag1) # Evaluation tag2.evaluate(test_data)
Producción :
0.8752428232246924
Cómo funciona ? La clase SequentialBackoffTagger puede tomar un argumento de palabra clave de retroceso cuyo valor es otra instancia de SequentialBackoffTagger. En el código anterior, el etiquetador de parte del discurso de unigrama se retrocede con el etiquetador predeterminado y se entrena en el conjunto de datos treebank.tagged_sents() . Código #2: Preparando una lista interna de etiquetadores de retroceso
Python3
from nltk.tag import SequentialBackoffTagger print (tag1._taggers == [tag1]) print ("\n", tag2._taggers == [tag2, tag1])
Producción :
True True
Cómo funciona ?
- Se inicializa la clase SequentialBackoffTagger, creando una lista interna de los etiquetadores de retroceso con el primer elemento siendo él mismo.
- La lista interna de etiquetadores del etiquetador de retroceso se adjunta si se proporciona un etiquetador de retroceso.
- La clase SequentialBackoffTagger usa _la lista de etiquetadores es la lista interna de etiquetadores de retroceso cuando se llama al método tag().
- Llamando a choose_tag() en cada uno de ellos, revisa su lista de etiquetadores.
- Se detiene y devuelve la etiqueta cuando se encuentra una etiqueta.
- La etiqueta se devolverá si el etiquetador principal puede etiquetar la palabra.
- De lo contrario, devuelve Ninguno y se prueba con el siguiente etiquetador, y así sucesivamente hasta que se encuentra una etiqueta, o de lo contrario, se devuelve Ninguno.
Código #3: Guardando y cargando un etiquetador entrenado con pickle.
Python3
# Loading Libraries import pickle # Opening file and writing file = open('tagger.pickle', 'wb') pickle.dump(tagger, file) file.close() # Reading file file = open('tagger.pickle', 'rb') # Loading tagger = pickle.load(f)
Producción :
nltk.data.load('tagger.pickle') will load the file
Publicación traducida automáticamente
Artículo escrito por Mohit Gupta_OMG 🙂 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA