Description
Detect 4 different types of entities in Indian text.
Predicted Entities
PER
, ORG
, LOC
, TIME
Live Demo Open in Colab Download Copy S3 URI
How to use
...
embeddings = WordEmbeddingsModel.pretrained("bengali_cc_300d", "bn") \
.setInputCols(["sentence", "token"]) \
.setOutputCol("embeddings")
ner = NerDLModel.pretrained("bengaliner_cc_300d", "bn") \
.setInputCols(["document", "token", "embeddings"]) \
.setOutputCol("ner")
...
pipeline = Pipeline(stages=[document_assembler, tokenizer, embeddings, ner, ner_converter])
example = spark.createDataFrame([['১৯৪৮ সালে ইয়াজউদ্দিন আহম্মেদ মুন্সিগঞ্জ উচ্চ বিদ্যালয় থেকে মেট্রিক পাশ করেন এবং ১৯৫০ সালে মুন্সিগঞ্জ হরগঙ্গা কলেজ থেকে ইন্টারমেডিয়েট পাশ করেন']], ["text"])
result = pipeline.fit(example).transform(example)
...
val embeddings = WordEmbeddingsModel.pretrained("bengali_cc_300d", "bn")
.setInputCols(Array("document", "token"))
.setOutputCol("embeddings")
val ner = NerDLModel.pretrained("bengaliner_cc_300d", "bn")
.setInputCols(Array("document", "token", "embeddings"))
.setOutputCol("ner")
...
val pipeline = new Pipeline().setStages(Array(document_assembler, sentence_detector, tokenizer, embeddings, ner, ner_converter))
val data = Seq("১৯৪৮ সালে ইয়াজউদ্দিন আহম্মেদ মুন্সিগঞ্জ উচ্চ বিদ্যালয় থেকে মেট্রিক পাশ করেন এবং ১৯৫০ সালে মুন্সিগঞ্জ হরগঙ্গা কলেজ থেকে ইন্টারমেডিয়েট পাশ করেন").toDF("text")
val result = pipeline.fit(data).transform(data)
import nlu
nlu.load("bn.ner").predict("""১৯৪৮ সালে ইয়াজউদ্দিন আহম্মেদ মুন্সিগঞ্জ উচ্চ বিদ্যালয় থেকে মেট্রিক পাশ করেন এবং ১৯৫০ সালে মুন্সিগঞ্জ হরগঙ্গা কলেজ থেকে ইন্টারমেডিয়েট পাশ করেন""")
Results
+----------------------+-----------+
| ner_chunk | label |
+----------------------+-----------+
| ১৯৪৮ সালে | TIME |
| ইয়াজউদ্দিন আহম্মেদ | PER |
| মুন্সিগঞ্জ উচ্চ বিদ্যালয় | ORG |
| ১৯৫০ সালে | TIME |
| মুন্সিগঞ্জ হরগঙ্গা কলেজ | ORG |
+----------------------+-----------+
Model Information
Model Name: | bengaliner_cc_300d |
Type: | ner |
Compatibility: | Spark NLP 2.7.3+ |
License: | Open Source |
Edition: | Official |
Input Labels: | [document, token, word_embeddings] |
Output Labels: | [ner] |
Language: | bn |
Data Source
This models is trained on data obtained from https://ieeexplore.ieee.org/document/8944804
Benchmarking
label tp fp fn prec rec f1
I-TIME 167 37 25 0.8186275 0.8697917 0.8434344
B-LOC 678 114 195 0.8560606 0.7766323 0.81441444
I-ORG 287 104 143 0.73401535 0.66744184 0.6991474
B-TIME 414 54 123 0.88461536 0.7709497 0.8238806
I-LOC 98 50 76 0.6621622 0.5632184 0.6086956
I-PER 805 38 55 0.9549229 0.93604654 0.94539046
B-ORG 446 108 225 0.8050541 0.6646796 0.72816324
B-PER 764 48 183 0.9408867 0.80675817 0.86867535
tp: 3659 fp: 553 fn: 1025 labels: 8
Macro-average prec: 0.8320431, rec: 0.75693977, f1: 0.79271656
Micro-average prec: 0.86870843, rec: 0.78116995, f1: 0.8226169