NLP | Partial analysis with Regex



chunker = RegexpParser (r "" "

  NP:

# chunk optional noun qualifier

{& lt; DT & gt; & lt ;? NN. * & gt; +}

  

# combine adjective with noun

& lt; JJ & gt; {} & lt; NN. * & gt;

 

PP:

  # chunk preposition

  { & lt; IN & gt;}

VP:

# optional modal chunk with verb

  {& lt; MD & gt ;? & lt; VB. * & gt;} & # 39; & # 39; & # 39; )

 

from nltk.corpus import conll2000

 

score = chunker.evaluate (conll2000.chunked_sents ())

 

print ( "Accuracy:" , score.accuracy ())

Output:

 Accuracy: 0.6148573545757688 

The treebank_chunk corpus is a special version of the treebank corpus and provides a chunked_sents () method. Due to its file format, the normal Treebank corpus cannot provide this method.

Code # 2: Using treebank_chunk

from nltk.corpus import treebank_chunk

 

treebank_score = chunker.evaluate (

treebank_chunk.chunked_sents () )

 

print ( " Accuracy: " , treebank_score.accuracy ()

Output:

 Accuracy: 0.49033970 276008493 

Piece score metrics
It provides metrics other than accuracy. Out of the Pieces
Precision means how much was correct. 
Recall means how well the chunker found the correct chunks compared to the total number of chunks.

Code # 3: Scoring Metrics

print ( "Precision:" , score.precision ())

 

print ( "Recall:" , score.recall ())

 

print ( "Length for missed one:" , len (score.missed ()))

  

print ( "Length for incorrect one:" , len (score.incorrect ()))

 

print ( "Length for correct one:" , len (score.correct ()))

 

print ( " Length for guessed one: " , len (score.guessed ()))

Output:

< pre> Precision: 0.60201948127375 Recall: 0.606072502505847 Length for missed one: 47161 Length for incorrect one: 47967 Length for correct one: 119720 Length for guessed one: 120526