ClassifierBasedPOSTagger-Klasse :

  • Es ist eine Unterklasse von ClassifierBasedTagger, die Klassifikationstechniken verwendet, um Teil-der-Sprache-Markierungen durchzuführen.
  • Aus den Wörtern werden Merkmale extrahiert und dann an einen internen Klassifizierer übergeben.
  • Es klassifiziert die Funktionen und gibt eine Bezeichnung zurück, dh ein Teil-der-Sprache-Tag.
  • Der Feature-Detektor findet Suffixe mit mehreren Längen, führt einige Übereinstimmungen mit regulären Ausdrücken durch und überprüft den Unigramm-, Bigram- und Trigram-Verlauf, um einen ziemlich vollständigen Satz von Features für jedes Wort zu erstellen

Code 1: Verwenden von ClassifierBasedPOSTagger

from nltk.tag.sequential import ClassifierBasedPOSTagger 
from nltk.corpus import treebank 
  
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) 

Ausgabe :

Genauigkeit: 0,9309734513274336

Die ClassifierBasedPOSTagger-Klasse erbt von ClassifierBasedTagger und implementiert nur eine feature_detector() -Methode. Das gesamte Training und Tagging erfolgt in ClassifierBasedTagger.

Code 2: Verwenden von MaxentClassifier



from nltk.classify import MaxentClassifier 
from nltk.corpus import treebank 
  
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) 

Ausgabe :

Genauigkeit: 0,9258363911072739

Erkennungsfunktionen für benutzerdefinierte Feature-Detektoren
Es gibt zwei Möglichkeiten:

  1. Unterklasse ClassifierBasedTagger und implementieren Sie eine feature_detector() -Methode.
  2. Übergeben Sie bei der Initialisierung eine Funktion als Schlüsselwortargument feature_detector an ClassifierBasedTagger.

Code 3: Benutzerdefinierter Funktionsdetektor

from nltk.tag.sequential import ClassifierBasedTagger 
from tag_util import unigram_feature_detector 
from nltk.corpus import treebank 
  
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) 

Ausgabe :

Genauigkeit: 0,8733865745737104