Part of Speech for Tamil (pos_ttb)

Description

A Part of Speech classifier predicts a grammatical label for every token in the input text. Implemented with an averaged perceptron architecture.

Predicted Entities

  • ADJ
  • ADP
  • ADV
  • AUX
  • CCONJ
  • DET
  • NOUN
  • NUM
  • PART
  • PRON
  • PROPN
  • PUNCT
  • VERB
  • X

Live Demo Open in Colab Download Copy S3 URI

How to use

document_assembler = DocumentAssembler() \
.setInputCol("text") \
.setOutputCol("document")

sentence_detector = SentenceDetector() \
.setInputCols(["document"]) \
.setOutputCol("sentence")


tokenizer = Tokenizer()\
    .setInputCols("sentence")\
    .setOutputCol("token")

pos = PerceptronModel.pretrained("pos_ttb", "ta") \
.setInputCols(["document", "token"]) \
.setOutputCol("pos")

pipeline = Pipeline(stages=[
document_assembler,
sentence_detector,
tokenizer,
posTagger
])

example = spark.createDataFrame([['எனவே ஐநா சபை மூலமாக நிதி உதவியை அளிக்கும் ஆறு இந்தியாவுக்கு தகவல் அனுப்பிய் உள்ளோம் என அந் நாட்டின் வெளியுறவுத் துறை செய்தித்தொடர்பாளர் அப்துல் பாசித் தெரிவித்தார் . ']], ["text"])

result = pipeline.fit(example).transform(example)
val document_assembler = DocumentAssembler()
.setInputCol("text")
.setOutputCol("document")

val sentence_detector = SentenceDetector()
.setInputCols("document")
.setOutputCol("sentence")


val tokenizer = Tokenizer()
    .setInputCols("sentence")
    .setOutputCol("token")

val pos = PerceptronModel.pretrained("pos_ttb", "ta")
.setInputCols(Array("document", "token"))
.setOutputCol("pos")

val pipeline = new Pipeline().setStages(Array(document_assembler, sentence_detector,tokenizer, pos))

val data = Seq("எனவே ஐநா சபை மூலமாக நிதி உதவியை அளிக்கும் ஆறு இந்தியாவுக்கு தகவல் அனுப்பிய் உள்ளோம் என அந் நாட்டின் வெளியுறவுத் துறை செய்தித்தொடர்பாளர் அப்துல் பாசித் தெரிவித்தார் . ").toDF("text")
val result = pipeline.fit(data).transform(data)
import nlu
text = [""எனவே ஐநா சபை மூலமாக நிதி உதவியை அளிககும ஆறு இநதியாவுககு தகவல அனுபபிய உளளோம என அந நாடடின வெளியுறவுத துறை செயதிததொடரபாளர அபதுல பாசித தெரிவிததார . ""]
token_df = nlu.load('ta.pos.ttb').predict(text)
token_df

Results

+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------+
|text                                                                                                                                                                 |result                                                                                                                              |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------+
|எனவே ஐநா சபை மூலமாக நிதி உதவியை அளிக்கும் ஆறு இந்தியாவுக்கு தகவல் அனுப்பிய் உள்ளோம் என அந் நாட்டின் வெளியுறவுத் துறை செய்தித்தொடர்பாளர் அப்துல் பாசித் தெரிவித்தார் .|[ADV, PROPN, NOUN, ADP, NOUN, NOUN, ADJ, PART, PROPN, NOUN, VERB, AUX, PART, DET, NOUN, NOUN, NOUN, NOUN, PROPN, PROPN, VERB, PUNCT]|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------+

Model Information

Model Name: pos_ttb
Compatibility: Spark NLP 2.7.5+
License: Open Source
Edition: Official
Input Labels: [sentence, token]
Output Labels: [pos]
Language: ta

Data Source

The model was trained on the Universal Dependencies data set.

Benchmarking

|              | precision | recall | f1-score | support |
|--------------|-----------|--------|----------|---------|
| ADJ          | 0.21      | 0.58   | 0.31     | 53      |
| ADP          | 0.76      | 0.41   | 0.53     | 68      |
| ADV          | 0.70      | 0.57   | 0.63     | 75      |
| AUX          | 0.73      | 0.74   | 0.73     | 151     |
| CCONJ        | 1.00      | 1.00   | 1.00     | 8       |
| DET          | 0.80      | 0.69   | 0.74     | 29      |
| NOUN         | 0.72      | 0.80   | 0.76     | 526     |
| NUM          | 0.87      | 0.71   | 0.78     | 91      |
| PART         | 0.82      | 0.81   | 0.82     | 168     |
| PRON         | 0.73      | 0.75   | 0.74     | 61      |
| PROPN        | 0.67      | 0.57   | 0.62     | 249     |
| PUNCT        | 0.83      | 0.89   | 0.86     | 190     |
| VERB         | 0.65      | 0.51   | 0.57     | 319     |
| X            | 0.00      | 0.00   | 0.00     | 1       |
| accuracy     |           |        | 0.70     | 1989    |
| macro avg    | 0.68      | 0.65   | 0.65     | 1989    |
| weighted avg | 0.72      | 0.70   | 0.70     | 1989    |