Hi Rekan Devs,
Ini artikel kedua tentang text mining, seperti yang kita tahu library untuk melakukan Natural Language Processing (NLP) di .NET itu cukup langka. Nah ada satu open source library buatan orang jerman yang cukup menarik untuk kita coba, namanya Catalyst. Kalau dari githubnya mereka mendefinisikan librarynya sebagai: Natural Language Processing library yang cepat, terinspirasi dari spaCy’s design (salah satu NLP library yang mumpuni di python), memiliki beberapa pre-trained model, dukungan untuk melakukan training model sendiri, dan memiliki entity recognition model yang fleksibel.
Ok kalau rekan-rekan cek sendiri ke reponya di curiosity-ai/catalyst: 🚀 Catalyst is a C# Natural Language Processing library built for speed. Inspired by spaCy’s design, it brings pre-trained models, out-of-the box support for training word and document embeddings, and flexible entity recognition models. (github.com) terlihat ada beberapa contoh yang bisa dicoba antara lain untuk melakukan beberapa tugas seperti:
- Entity Recoginition : mengenali entitas dari teks yang terdapat dalam dokumen, misal : Jakarta => lokasi, Jokowi => Person. Sehingga rekan-rekan bisa mengidentifikasi entitas-entitas yang ada dalam dokumen
- Language Detection: ya sesuai namanya rekan-rekan bisa deteksi bahasa dari suatu dokumen teks. Pake algoritma fast text buatan FB atau CLD2 (chrome language detektor punya).
- LDA, detail teorinya bisa baca disini Latent Dirichlet Allocation (LDA) (binus.ac.id) intinya sih untuk menentukan topik secara otomatis dari sekumpulan dokumen.
- Text Classification, untuk melakukan klasifikasi dari sekumpulan teks, detailnya coba baca dari artikel ini fastText for Text Classification. I explore a fastText classifier for… | by Shraddha Anala | Towards Data Science
- Spacy, ini penulis coba sepertinya masih ada bug, intinya dia panggil fungsi-fungsi spacy dari python library dengan bantuan library Python.Included kalau mau tau fungsinya bisa baca di spaCy · Industrial-strength Natural Language Processing in Python
- Wordnet, ini juga sepertinya masih on progress.
Nah kalau dari sini terlihat Catalyst ini berisi macam-macam algoritma yang digunakan untuk melakukan tugas-tugas seputar NLP.
Nah, rekan-rekan kalau mau jajal kita uda buatin project contoh silakan ikut langkah dibawah ini:
- Download .NET (Linux, macOS, and Windows) (microsoft.com)
- Download Visual Studio Code – Mac, Linux, Windows
Kemudian download projectnya dari Gravicode/MediaAnalysis: Experimental Project which using Catalyst NLP to do some NLP Tasks like entity recognition, language detection, LDA, etc. (github.com)
Nah aplikasi ini memiliki beberapa fungsi antara lain:
- search menggunakan google custom search untuk cari artikel dari beberapa portal berita
- untuk konfigurasi silakan rekan-rekan buka Programmable Search – Create search engine (google.com)
- Silakan disitu rekan-rekan bisa daftarkan situs-situs berita, trus kasih nama misal “BERITA”. Kemudian copy “Search Engine ID” nya
- Terus buka google cloud, Google Cloud Platform bikin project baru, lalu di library tambahkan library “Custom Search API” lalu simpen key-nya
- nah project yang sudah di download silakan buka pakai Visual Studio, lalu edit file appsettings.json silakan sesuaikan dengan key yang sudah di dapat
- Silakan jalankan project, teken F5
Isi keyword dan Go, maka ada beberapa hasil yang bisa terlihat seperti dibawah ini:
Search:
Entity Recognition:
Language Detection:
LDA:
Ini perlu rekan-rekan bikin data trainingnya dulu agar bisa berfungsi dengan baik, ini contoh yang built-in pake corpusnya reuters.
Text Classification:
ini pada kosong karena data trainingnya rekan-rekan musti bikin sendiri, yang built-in di library cuma corpusnya Reuters dimana pasti ga kompatibel dengan konten yang mau di prediksi yang berbahasa Indonesia dan terkait dengan topik2 yang di search rekan-rekan.
Dari struktur project, rekan-rekan silakan lihat dan pelajari saja class-class yang ada di folder helpers
Moga manfaat dan selamat berexperiment,
Salam Developer ;D