ANALISIS DAN PERANCANGAN SISTEM 3.1 Data yang digunakan
3.2 Analisis Sistem
Pada bagian ini akan membahas tahapan yang akan dilakukan dalam penelitian.
Adapun tahap-tahap yang dilakukan yaitu pengumpulan dataset dari portal berita online (detik.com dan kompas.com) melalui proses web scrapping dengan melakukan filter/pencarian dengan keyword kombinasi nama kota dan nama penyakit tropis di Indonesia. Kemudian melakukan preprocessing dataset yang terdiri dari filtering, case folding, stemming dan tokenizing. Kemudian data yang telah di preprocessing akan dilakukan proses ekstraksi informasi dengan memanfaatkan Named Entity Recognition. Named Entity Recognition (NER) bekerja dengan menemukan dan mengidentifikasi entitas bernama yang ada dalam teks tidak terstruktur ke dalam kategori standar seperti nama orang, lokasi, organisasi, ekspresi waktu, jumlah, dll.
Pada penelitian ini penulis memanfaatkan Spacy untuk ekstraksi informasi penyakit tropis di Indonesia terkait nama penyakit tropis, lokasi kejadian, tanggal kejadian, jumlah korban. SpaCy merupakan library natural language processing (NLP) dengan menentukan entitas statistik yang memberikan label ke rentang token yang
20
berdekatan. Kemudian dilakukan pendekatan Named Entity Recognition (NER) dengan metode SpaCy untuk menguji data training dan data testing. Setelah proses ekstraksi informasi didapatkan dan menghasilkan berbagai entitas, dilakukan proses klasifikasi untuk mengelompokkan setiap entitas kedalam tabel yang sesuai.
Klasifikasi dilakukan secara otomatis melalui corpus yang sudah diberi label dalam bentuk model pada proses NER. Tahap selanjutnya yaitu dengan menggunakan pendekatan rule-based pengenalan entitas dilakukan dengan mendefinisikan aturan mengenai pola-pola posisi kata anggota entitas pada sebuah frase atau kalimat.
Langkah terakhir adalah tahapan data collection dari hasil Information Extraction dengan menggunakan Rule Based, dan untuk mendapatkan hasil visualisasi penyakit tropis di Indonesia Data Visualization Geospatial menggunakan metode Flask GoogleMaps. Adapun proses analisis sistem dapat digambarkan pada dalam bentuk arsitektur umum pada Gambar 3.1
Gambar 3. 1 Arsitektur Umum 3.2.1 Input
Input pada penelitian ini adalah berupa dokumen teks hasil dari proses scrapping berita online (detik.com dan kompas.com) dengan melakukan pencarian dengan keyword tertentu. Pada penelitian ini mengambil data dari situs portal berita yang lebih lengkap dan ter-update diantarnya, detik.com dan kompas.com. Pencarian dilakukan dengan kombinasi nama kota dan nama penyakit tropis di Indonesia. Dari hasil pencarian didapatkan list link berita. Dari tiap link berita yang ditampikan, berita dibuka dan
22
diambil tiap paragraph dan dijadikan 1 row dataframe. Hasil scrapping berupa tanggal, keyword pencarian, url berita paragraph dan kategori nama penyakit tropis.
3.2.2 Prepocessing Data
Preprocessing Data merupakan proses mengubah data menjadi sesuatu yang dapat dipahami computer. Dataset yang telah diperoleh akan melakukan beberapa tahapan preprocessing, yaitu:
3.2.2.1 Filtering
Filtering adalah proses menghilangkan tautan url, tanda titik berulang, hastag, mention, tanda baca, angka, tambahan spasi dan stopword.. Dalam proses ini digunakan NLTK python libraries dengan memanfaatkan korpus stopwords untuk Natural Language Processing. NLTK mendukung penghapusan kata yang tidak memiliki makna tertentu dalam suatu kalimat seperti kata hubung dan kata depan.
Contoh proses filtering dapat dilihat pada tabel 3.2 berikut.
Tabel 3.2 Proses Hasil Filtering
Paragraf yang akan di filter Hasil Filtering
“Berdasarkan data Kementerian Kesehatan RI, berikut adalah detail sebaran kasus Demam Berdarah (DBD) di Indonesia dari tertinggi hingga terendah per 21 Juni 2020:Jawa Barat 10.594, Bali 8.930, Nusa Tenggara Timur 5.432, Jawa Timur 5.104, Lampung 4.983, Nusa Tenggara Barat 3.796, DKI Jakarta 3.628, Jawa Tengah 2.846, DI Yogyakarta 2.720, Riau 2.143, Sulawesi Selatan 2.100, Sumatera Selatan 1.749, Jambi 1.587, Kalimantan Timur 1.459, Sumatera Utara 1.345, Kalimantan Selatan 1.310, Banten 1.107, Sumatera Barat 848, Sulawesi Tenggara 739, Bangka Belitung 695, Sulawesi Utara 675, Kalimantan Barat 652, Sulawesi Tengah 614, Kalimantan Tengah 603, Kepulauan Riau 556, Aceh 527, Sulawesi Barat 520, Bengkulu 516,
Berdasarkan data Kementerian Kesehatan RI berikut detail sebaran kasus Demam Berdarah DBD Indonesia tertinggi hingga terendah per Juni Jawa Barat Bali Nusa Tenggara Timur Jawa Timur Lampung Nusa Tenggara Barat DKI Jakarta Jawa Tengah DI Yogyakarta Riau Sulawesi Selatan Sumatera Selatan Jambi Kalimantan Timur Sumatera Utara Kalimantan Selatan Banten Sumatera Barat Sulawesi Tenggara Bangka Belitung Sulawesi Utara Kalimantan Barat Sulawesi Tengah Kalimantan Tengah Kepulauan Riau Aceh Sulawesi Barat Bengkulu Gorontalo Maluku Utara Kalimantan Utara Papua Barat Maluku Papua
Gorontalo 508, Maluku Utara 203, Kalimantan Utara 127, Papua Barat 121, Maluku 11, Papua 5.”
3.2.2.2 Case Folding
Case Folding adalah proses dalam menghapus semua perbedaan case atau huruf besar yang ada dalam string. Metode ini digunakan untuk melakukan perbandingan string case-sensitive antara dua string. Proses ini dilakukan untuk mengubah setiap huruf menjadi huruf kecil (lowercase). Contoh proses case folding dapat dilihat pada tabel 3.3 berikut.
Tabel 3.3 Proses Hasil Case Folding
3.2.2.3 Stemming
Stemming adalah proses mengurangi infleksi pada kata-kata menjadi bentuk dasarnya atau kata baku seperti memetakan sekelompok kata ke stem yang sama meskipun stem itu sendiri bukan kata yang valid dalam Bahasa. Dalam proses ini kata yang tidak baku
24
akan diperbaiki menjadi kata baku. Contoh proses stemming dapat dilihat pada tabel 3.4 berikut.
Tabel 3.4 Proses Hasil Stemming
3.2.2.4 Tokenizing
Tokenizing adalah proses pemisahan kalimat teks menjadi potongan kata untuk di analisa. Tokenizing pada dasarnya mengacu pada pemisahan tubuh teks yang lebih besar menjadi baris-baris yang lebih kecil, kata-kata atau bahkan membuat kata atau entitas lainnya sebagai token. Contoh proses dari tokenizing dapat dilihat pada tabel 3.5 berikut.
Tabel 3.5 Tahapan Tokenizing
Hasil Stemming Hasil Tokenizing dasar data menteri sehat ri ikut detail
sebar kasus demam darah dbd indonesia tinggi hingga rendah per juni jawa barat bal nusa tenggara timur jawa timur lampung nusa tenggara barat dki jakarta jawa tengah di yogyakarta riau
['dasar', 'data', 'menteri', 'sehat', 'ri', 'ikut', 'detail', 'sebar', 'kasus', 'demam', 'darah', 'dbd', 'indonesia', 'tinggi', 'hingga', 'rendah', 'per', 'juni', 'jawa', 'barat', 'bal', 'nusa', 'tenggara', 'timur', 'jawa', 'timur', 'lampung', 'nusa',
sulawesi selatan sumatera selatan jambi kalimantan timur sumatera utara kalimantan selatan banten sumatera barat sulawesi tenggara bangka belitung sulawesi utara kalimantan barat sulawesi tengah kalimantan tengah pulau riau aceh sulawesi barat bengkulu gorontalo malu utara kalimantan utara papua barat malu papua
'tenggara', 'barat', 'dki', 'jakarta', 'jawa', 'tengah', 'di', 'yogyakarta', 'riau', 'sulawesi', 'selatan', 'sumatera', 'selatan', 'jambi', 'kalimantan', 'timur', 'sumatera', 'utara', 'kalimantan', 'selatan', 'banten', 'sumatera', 'barat', 'sulawesi', 'tenggara', 'bangka', 'belitung', 'sulawesi', 'utara', 'kalimantan', 'barat', 'sulawesi', 'tengah', 'kalimantan', 'tengah', 'pulau', 'riau', 'aceh', 'sulawesi', 'barat', 'bengkulu', 'gorontalo', 'malu', 'utara', 'kalimantan', 'utara', 'papua', 'barat', 'malu', 'papua']
3.2.3 Named Entity Recognition (NER) Library SpaCy
Dalam proses ekstraksi informasi digunakan Library SpaCy untuk Named Entity Recognition (NER). Named entity adalah "objek nyata" yang diberi nama, dalam penelitian ini ditentukan untuk mendapatkan ekstraksi informasi penyakit tropis di Indonesia terkait nama penyakit tropis, lokasi kejadian, tanggal kejadian, jumlah korban. SpaCy dapat mengenali berbagai jenis entitas bernama dalam dokumen, dengan meminta model untuk mengenali entitas tersebut. Berikut beberapa proses Named Entity Recognition (NER) menggunakan Library SpaCy:
3.2.3.1 Dependency Parsing
Depenency parsing adalah teknik pemrosesan bahasa yang menentukan arti kalimat dengan lebih baik dengan menganalisis bagaimana penguraiannya untuk menentukan bagaimana kata-kata itu saling berhubungan satu sama lain. Bagian ini mencantumkan label dependency sintaks yang ditetapkan oleh model spaCy. Label individu khusus bahasa dan bergantung pada training corpus atau korpus pelatihan. Struktur spaCy bersifat modular, dan pemrosesan teks terjadi dengan memanggil modul individual.
Untuk pendekatan kami, kami menambahkan langkah pemrosesan lebih lanjut antara "
tokenization" dan " dependency parsing" di mana akan menghitung ulang segmentasi
26
token dengan mempertimbangkan entitas bernama yang disediakan. Kemudian akan diteruskan offset token yang disesuaikan ke modul dependency parsing.
Masukan tersebut kemudian secara internal diubah menjadi objek spaCy.
Kemudian spaCy digunakan untuk melakukan tokenisasi dan dependency parsing, dengan mempertimbangkan anotasi yang ada jika tersedia. Ini dilakukan dengan memberi token pada teks yang disediakan, dan melakukan iterasi melalui anotasi yang diberikan untuk membentuk urutan token baru. Urutan baru ini mempertahankan anotasi NER sebagai token individu dan tidak merusaknya lebih jauh. Dalam kasus anotasi yang bentrok dan tumpang tindih, akan menggunakan kecocokan terpanjang paling kiri. Dengan menggunakan urutan token baru ini, objek representasi spaCy baru dibuat di mana dependency parsing dilakukan.
3.2.3.2 Processing Pipelines
Setelah Ketika melakukan pemanggilan nlp pada teks, spaCy terlebih dahulu membuat token teks tersebut untuk menghasilkan objek Doc. Doc kemudian diproses dalam beberapa langkah berbeda, ini juga disebut sebagai processing pipeline. Pipeline yang digunakan oleh trained pipelines biasanya menyertakan tagger, lemmatizer, parser, dan entity recognizer. Setiap komponen pipeline dapat dilihat pada tabel 3.6 mengembalikan Doc yang telah diproses, yang kemudian diteruskan ke komponen berikutnya.
Gambar 3.2 Proses Pipelines Tabel 3.6 Komponen Pipeline
Name Component Creates Description
tokenizer Doc
Segmentasikan teks menjadi token
tagger Doc[i].tag Tag
textcat Doc.cats Label dokumen
… Custom components
The processing pipeline selalu bergantung pada model statistik dan kemampuannya. Misalnya, pipeline hanya dapat menyertakan komponen entity recognizer jika model tersebut menyertakan data untuk membuat prediksi label entitas.
Inilah sebabnya mengapa setiap model akan menentukan pipeline yang akan digunakan dalam meta datanya.
a. Processing text
Pada proses memanggil nlp pada teks, spaCy akan membuat tokenisasi dan kemudian memanggil setiap komponen di Doc, secara berurutan. Itu kemudian mengembalikan Doc yang diproses yang dapat Anda kerjakan. Saat memproses teks dalam jumlah besar, model statistik biasanya lebih efisien jika dibiarkan bekerja pada kumpulan teks.
Metode nlp.pipe spaCy mengambil iterable teks dan menghasilkan objek Doc yang diproses. Pengelompokan dilakukan secara internal.
Dalam penelitian ini menggunakan nlp.pipe untuk memproses teks yang dapat diulang berpotensi sangat besar, dengan hanya mengakses entitas bernama di doc.ents (disetel oleh komponen ner), dan akan menonaktifkan semua komponen statistik lainnya (tagger dan parser) selama pemrosesan. Nlp.pipe menghasilkan objek Doc, sehingga kita dapat mengulanginya dan mengakses prediksi named entity.
28
Pada dasarnya, model spaCy terdiri dari tiga komponen: bobot, yaitu data biner yang dimuat dari direktori, pipeline fungsi yang dipanggil, dan language data seperti aturan tokenisasi dan skema anotasi. Semua ini khusus untuk setiap model, dan ditentukan dalam model meta.json dan status pipeline selalu dipegang oleh language class. spacy.load menyatukan semua dan mengembalikan instance language dengan kumpulan pipeline dan akses ke data biner.
3.2.3.3 Vectors & Similarity
Similarity ditentukan dengan membandingkan vektor kata atau "word embeddings", representasi makna multi-dimensi dari sebuah kata. Model yang dilengkapi dengan vektor kata built-in tersedia sebagai atribut Token.vector, Doc.vector dan Span.vector akan default ke rata-rata vektor token. Kemudian dapat memeriksa apakah token memiliki vektor yang ditetapkan, dan mendapatkan norma L2, yang dapat digunakan untuk menormalkan vektor. Setiap Doc, Span, dan Token dilengkapi dengan metode .similarity () yang memungkinkan untuk membandingkan dengan objek lain, dan menentukan kesamaannya. Model kesamaan spaCy biasanya mengasumsikan definisi kesamaan yang cukup untuk tujuan umum.
3.2.3.4 Named Entity Recognition (NER)
Pada SpaCy menampilkan sistem pengenalan entitas statistik yang cepat, yang memberikan label ke rentang token yang berdekatan sehingga dapat menambahkan kelas arbitrer ke sistem pengenalan entitas, dan memperbarui model dengan contoh baru. Sistem NER mampu menemukan elemen entitas dari data mentah dan menentukan kategori elemen tersebut. Sistem membaca kalimat tersebut dan menyoroti elemen entitas penting dalam teks. Berikut cara kerja dari proses Named Entity Recognition (NER) dapat dilihat pada gambar 3.3.
Gambar 3.3 Cara kerja Named Entity Recognition (NER)
Langkah pertama dalam NER adalah mengekstraksi informasi dengan mendeteksi dan menyiapkan entitas bernama yang disebutkan dalam dokumen, paragraf, kalimat, dan teks. Seluruh fase ekstraksi meliputi penandaan ucapan, pendeteksian batasan kalimat, aturan kapitalisasi dan referensi bersama dalam dokumen yang lebih penting untuk digunakan dan menemukan istilah yang lebih spesifik dalam pencarian. Proses selanjutnya dalam NER adalah mencari kandidat entitas untuk disebutkan dalam dokumen. Pencari menjaga keseimbangan dengan akurat dan mengingat entitas yang tepat, kemudian menyimpan sejumlah kecil entitas untuk mengurangi perhitungan yang diperlukan untuk mengenali entitas tersebut.
Dalam penelitian ini model entitas dalam korpus didukung dengan format BIOTagging. BIO adalah singkatan dari Beginning, Inside and Outside (dari segmen teks). Dalam sistem yang mengenali batas entitas saja, hanya tiga label yang digunakan:
B, I, dan O. BIO Tagging juga sebagai format penandaan yang digunakan untuk menandai token dalam tugas chunking seperti named-entity recognition. Tag ini mirip dengan tag part-of-speech tetapi memberi informasi tentang lokasi kata dalam potongan. Sistem BIO Tagging berisi tag dalam bentuk:
1. B- {CHUNK_TYPE} - untuk kata di bagian Awal
2. I- {CHUNK_TYPE} - untuk kata-kata Di dalam potongan 3. O - Di luar bagian mana pun
Dalam proses evaluasi harus disediakan dokumen masukan beranotasi (gold standard). Saat ini, format yang didukung adalah IOB (kependekan dari Inside, Outside, Beginning) (Ramshaw dan Marcus, 1995). Dalam data ini, setiap kata/baris dimasukkan, file mewakili satu token dengan dua kolom: file kata itu sendiri dan jenis entitas bernama. Garis kosong menunjukkan batas kalimat. Contoh representasi berikut:
Medan B-Lokasi.
Awalan B- sebelum sebuah tag menunjukkan bahwa tag tersebut adalah awal dari sebuah potongan, dan sebuah awalan I- sebelum sebuah tag menunjukkan bahwa tag tersebut berada di dalam sebuah potongan. B- tag digunakan hanya ketika sebuah tag diikuti oleh sebuah tag dengan tipe yang sama tanpa token O di antaranya. Tag O menunjukkan bahwa token tidak memiliki entitas / potongan. Named entities tersedia sebagai properti ents dari Doc.
30
3.2.3.5 Train the Model
Pada Dalam proses training data perlu mengompilasi model dengan menentukan loss function dan optimizer yang akan digunakan saat training, serta evaluation metrics yang akan diukur.
Gambar 3.4 Proses Train Model Proses Train Model dijelaskan sebagai berikut:
1. model, loss = train_spacy([train_data], 100), berikut fungsi untuk men-training data text yang telah di label entity dengan jumlah iterasi 100.
2. model.to_disk("finalModel1"), yaitu untuk menyimpan data yang telah di training menjadi model sehingga akan mengenali dan memprediksi dengan data yang baru kemudian disimpan untuk menjadi update model.
Model spaCy bersifat statistik pada setiap "keputusan" yang dibuat - misalnya, tag part-of-speech mana yang akan ditetapkan, atau bagaimana suatu kata adalah named entity - adalah prediksi. Prediksi ini didasarkan pada contoh yang telah dilihat model selama pelatihan atau training. Untuk melatih model, terlebih dahulu memerlukan data pelatihan atau train data - contoh teks, dan label yang akan digunakan untuk diprediksi oleh model. Ini bisa berupa tag nama entitas atau informasi lainnya.
Model kemudian menampilkan teks yang tidak berlabel dan akan membuat prediksi, karena dapat memberikan umpan balik model pada prediksinya dalam bentuk gradien kesalahan yang disebut "error gradient" dari fungsi kerugian yang disebut "loss function" yang menghitung selisih antara contoh pelatihan atau training dan keluaran atau output yang diharapkan. Semakin besar perbedaannya, semakin signifikan gradien dan pembaruan pada model yang dibuat.
Saat melatih model, model tersebut akan mengenali atau menghafal data yang sudah di label agar menghasilkan teori yang dapat digeneralisasikan. Tidak hanya model tersebut mempelajari bahwa suatu contoh kata "Medan" di sini adalah sebuah lokasi, yang akan dilakukan model tersebut mempelajari bahwa "Medan", dalam
konteks seperti ini, kemungkinan besar adalah sebuah lokasi. Itulah mengapa data pelatihan atau training data harus selalu mewakili data yang ingin diproses. Berarti bahwa untuk mengetahui performa model, dan bagaimana model mempelajari hal yang benar dengan memerlukan data training dan data testing.
Semua model spaCy dapat memperbarui model yang telah dilatih sebelumnya dengan contoh-contoh baru. Jadi perlu memberikan banyak contoh untuk meningkatkan sistem secara bermakna dengan data ratusan adalah awal yang baik, tetapi lebih banyak lebih baik.
Kemudian harus menghindari pengulangan beberapa contoh yang sama beberapa kali, atau model kemungkinan akan “forget” cara memberi anotasi pada contoh lainnya. Jika mengulangi beberapa contoh yang sama, secara efektif mengubah loss function. The optimizer akan menemukan cara untuk meminimalkan loss pada contoh data, tanpa memperhatikan konsekuensi pada contoh yang tidak lagi diperhatikan. Salah satu cara untuk menghindari masalah "catastrophic forgetting" ini adalah dengan "remind" model contoh lain dengan menambah anotasi dengan kalimat yang dianotasi dengan entitas yang secara otomatis dikenali oleh model asli. Pada akhirnya, ini adalah proses empirical : yang berarti perlu bereksperimen pada data untuk menemukan solusi yang paling sesuai untuk hasil akhir. Loss function merupakan fungsi yang digunakan untuk menghitung kinerja dari suatu model yaitu dengan menghitung error yang dihasilan dari model tersebut. Rumus yang digunakan pada loss function yaitu ada pada rumus 3.1 (Martinez dan Stiefelhagen, 2018).
𝐻(𝑝, 𝑞) = − ∑ 𝑝𝑖
Untuk cara memperbarui entity recognizer spaCy dimulai dengan model yang sudah ada sebelumnya, atau dari awal menggunakan blank Language class. Untuk melakukan ini memerlukan teks contoh dan offset karakter dan label dari setiap entitas yang terdapat dalam teks. Berikut beberapa cara untuk memperbarui NER pada SpaCy:
1. Load the model yang ingin Anda gunakan, atau buat model kosong
32
menggunakan spacy.blank dengan ID bahasa Anda. Jika menggunakan model kosong, jangan lupa untuk menambahkan the entity recognizer ke pipeline.
Jika menggunakan model yang ada, pastikan untuk menonaktifkan semua komponen pipeline lainnya selama training menggunakan nlp.disable_pipes.
Dengan cara ini, akan melatih pengenal entitas.
2. Shuffle and loop contoh. Untuk setiap contoh, perbarui model dengan memanggil nlp.update, yang menelusuri kata-kata yang dimasukkan. Di setiap kata, itu membuat prediksi. Kemudian berkonsultasi dengan anotasi untuk melihat apakah itu benar. Jika itu salah, ia menyesuaikan bobotnya sehingga tindakan yang benar akan mendapat skor lebih tinggi pada proses selanjutnya.
3. Simpan model training menggunakan nlp.to_disk.
4. Uji model untuk memastikan entitas dalam training data dikenali dengan benar.
3.2.3.6 Text Classification
Pada pengklasifikasian teks memprediksi kategori di seluruh dokumen. Ia dapat mempelajari satu atau lebih label, dan label dapat saling eksklusif (yaitu satu label benar per dokumen) atau tidak eksklusif satu sama lain (yaitu nol atau lebih label mungkin benar per dokumen). Setelan multi-label dikontrol oleh contoh model yang disediakan.
Dalam proses ini yaitu mengklasifikasikan entitas yang sudah di dapatkan pada proses named-entity recognition sebelumnya berdasarkan kelompok entitas. Dengan sekumpulan data teks yang akan klasifikasikan dalam tabel menurut beberapa parameter entitas, yaitu nama penyakit, lokasi kejadian, jumlah korban dan waktu kejadian.
Berikut beberapa tahap di bawah menjelaskan proses mengklasifikasikan teks:
1. Load the model yang akan digunakan, atau buat empty model menggunakan spacy.blank dengan ID bahasa Anda. Jika menggunakan model yang ada, pastikan untuk menonaktifkan semua komponen pipeline lainnya selama pelatihan menggunakan nlp.disable_pipes. Dengan cara ini, akan melatih pengklasifikasi teks atau training the text classifier.
2. Tambahkan pengklasifikasi teks pada pipeline dan tambahkan label yang akan di training, dalam kasus ini di klasifiksikan kata yang berupa nama penyakit, lokasi kejadian, jumlah korban dan waktu kejadian.
3. Load dan pre-process kumpulan data dan pisahkan sebagian untuk hold evaluasi. Dengan cara ini akan dapat melihat hasil di setiap training iteration.
4. Loop over the training dan partisi menjadi beberapa kelompok menggunakan minibatch spaCy dan compounding helpers.
5. Update the model dengan memanggil nlp.update, yang menelusuri contoh dan membuat prediksi. Kemudian dengan anotasi untuk melihat apakah itu benar.
Jika salah, bobotnya akan disesuaikan sehingga prediksi yang benar akan mendapat skor lebih tinggi pada proses yang akan diulang selanjutnya.
6. Kemudian dapat mengevaluasi pengklasifikasi teks pada setiap iterasi, dengan memeriksa performanya pada data pengembangan yang hold dari set data dan menghasilkan precision, recall, dan F-score.
7. Simpan trained model menggunakan nlp.to_disk.
8. Uji model dengan menggunakan fungsi scorer.
Contoh dari implemtasi klasifikasi pada entitas NER: