PNL | Etiquetado basado en clasificador

ClassifierBasedPOSTagger clase :

  • Es una subclase de ClassifierBasedTagger que utiliza la técnica de clasificación para etiquetar partes del discurso.
  • De las palabras, se extraen las características y luego se pasan a un clasificador interno.
  • Clasifica las características y devuelve una etiqueta, es decir, una etiqueta de parte del discurso.
  • El detector de características encuentra sufijos de varias longitudes, hace algunas coincidencias de expresiones regulares y analiza el historial de unigramas, bigramas y trigramas para producir un conjunto bastante completo de características para cada palabra.

Código n.º 1: Uso de ClassifierBasedPOSTagger

from nltk.tag.sequential import ClassifierBasedPOSTagger
from nltk.corpus import treebank
  
# initializing training and testing set    
train_data = treebank.tagged_sents()[:3000]
test_data = treebank.tagged_sents()[3000:]
  
tagging = ClassifierBasedPOSTagger(train = train_data)
  
a = tagging.evaluate(test_data)
  
print ("Accuracy : ", a)

Producción :

Accuracy : 0.9309734513274336

La clase ClassifierBasedPOSTagger hereda de ClassifierBasedTagger y solo implementa un método feature_detector(). Todo el entrenamiento y etiquetado se realiza en ClassifierBasedTagger.

Código #2: Uso de MaxentClassifier

from nltk.classify import MaxentClassifier
from nltk.corpus import treebank
  
# initializing training and testing set    
train_data = treebank.tagged_sents()[:3000]
test_data = treebank.tagged_sents()[3000:]
  
  
tagger = ClassifierBasedPOSTagger(
        train = train_sents, classifier_builder = MaxentClassifier.train)
  
a = tagger.evaluate(test_data)
  
print ("Accuracy : ", a)

Producción :

Accuracy : 0.9258363911072739

función personalizada detector detección de funciones
Hay dos formas de hacerlo:

  1. Subclase ClassifierBasedTagger e implemente un método feature_detector().
  2. Pase una función como argumento de la palabra clave feature_detector a ClassifierBasedTagger en la inicialización.

Código n.º 3: detector de características personalizadas

from nltk.tag.sequential import ClassifierBasedTagger
from tag_util import unigram_feature_detector
from nltk.corpus import treebank
  
# initializing training and testing set    
train_data = treebank.tagged_sents()[:3000]
test_data = treebank.tagged_sents()[3000:]
  
tag = ClassifierBasedTagger(
        train = train_data, 
        feature_detector = unigram_feature_detector)
  
a = tagger.evaluate(test_data)
  
print ("Accuracy : ", a)

Producción :

Accuracy : 0.8733865745737104

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *