Named Entity Recognition (NER) adalah sub-tugas ekstraksi informasi dalam Natural Language Processing (NLP) yang mengklasifikasikan entitas bernama ke dalam kategori yang telah ditentukan seperti nama orang, organisasi, lokasi, kode medis, ekspresi waktu, kuantitas, nilai moneter, dan lainnya. Dalam ranah NLP, memahami entitas-entitas ini sangat penting untuk banyak aplikasi, karena sering kali memuat informasi paling signifikan dalam sebuah teks.
Penjelasan Named Entity Recognition
Named Entity Recognition (NER) berfungsi sebagai jembatan antara teks tidak terstruktur dan data terstruktur, memungkinkan mesin menyaring sejumlah besar informasi tekstual dan mengekstrak potongan data berharga dalam bentuk yang terkategorikan. Dengan mengidentifikasi entitas tertentu di tengah lautan kata, NER mengubah cara kita memproses dan memanfaatkan data tekstual.
Tujuan: Tujuan utama NER adalah menelusuri teks tidak terstruktur dan mengidentifikasi potongan tertentu sebagai entitas bernama, kemudian mengklasifikasikannya ke dalam kategori yang telah ditentukan. Konversi teks mentah menjadi informasi terstruktur ini membuat data lebih dapat ditindaklanjuti, memfasilitasi tugas seperti analisis data, penelusuran informasi, dan konstruksi knowledge graph.
Cara kerja: Kompleksitas NER dapat diuraikan menjadi beberapa langkah:
- Tokenisasi. Sebelum mengidentifikasi entitas, teks dipecah menjadi token, yang bisa berupa kata, frasa, atau bahkan kalimat. Misalnya, "Steve Jobs co-founded Apple" akan dipecah menjadi token seperti "Steve", "Jobs", "co-founded", "Apple".
- Identifikasi entitas. Dengan menggunakan berbagai aturan linguistik atau metode statistik, entitas bernama yang berpotensi terdeteksi. Ini melibatkan pengenalan pola, seperti huruf kapital pada nama ("Steve Jobs") atau format tertentu (seperti tanggal).
- Klasifikasi entitas. Setelah entitas diidentifikasi, entitas dikategorikan ke dalam kelas yang telah ditentukan seperti "Person", "Organization", atau "Location". Ini sering dicapai dengan menggunakan model pembelajaran mesin yang dilatih pada dataset berlabel. Untuk contoh kita, "Steve Jobs" akan diklasifikasikan sebagai "Person" dan "Apple" sebagai "Organization".
- Analisis kontekstual. Sistem NER sering mempertimbangkan konteks sekitar untuk meningkatkan akurasi. Misalnya, dalam kalimat "Apple released a new iPhone", konteks membantu sistem mengenali "Apple" sebagai organisasi, bukan buah.
- Pascapemrosesan. Setelah pengenalan dan klasifikasi awal, pascapemrosesan mungkin diterapkan untuk menyempurnakan hasil. Ini bisa melibatkan penyelesaian ambiguitas, penggabungan entitas multi-token, atau penggunaan basis pengetahuan untuk memperkaya data entitas.
Keunggulan NER terletak pada kemampuannya memahami dan menafsirkan teks tidak terstruktur, yang merupakan porsi signifikan dari data di dunia digital, mulai dari halaman web dan artikel berita hingga unggahan media sosial dan makalah penelitian. Dengan mengidentifikasi dan mengklasifikasikan entitas bernama, NER menambahkan lapisan struktur dan makna pada lanskap tekstual yang luas ini.
Metode Named Entity Recognition
Named Entity Recognition (NER) telah melahirkan banyak metode selama bertahun-tahun, masing-masing dirancang untuk mengatasi tantangan unik dalam mengekstraksi dan mengkategorikan entitas bernama dari lanskap tekstual yang luas.
Metode Berbasis Aturan
Metode berbasis aturan berlandaskan aturan yang dibuat secara manual. Metode ini mengidentifikasi dan mengklasifikasikan entitas bernama berdasarkan pola linguistik, regular expression, atau kamus. Meski unggul di domain spesifik tempat entitas didefinisikan dengan baik, seperti mengekstraksi istilah medis standar dari catatan klinis, skalabilitasnya terbatas. Metode ini dapat kesulitan dengan dataset yang besar atau beragam karena kekakuan aturan yang telah ditentukan.
Metode Statistik
Beralih dari aturan manual, metode statistik menggunakan model seperti Hidden Markov Models (HMM) atau Conditional Random Fields (CRF). Metode ini memprediksi entitas bernama berdasarkan kemungkinan yang diturunkan dari data pelatihan. Metode ini tepat untuk tugas yang memiliki banyak dataset berlabel. Kekuatan utamanya adalah kemampuan menggeneralisasi di berbagai teks, tetapi kinerjanya sangat bergantung pada kualitas data pelatihan.
Metode Machine Learning
Metode machine learning melangkah lebih jauh dengan menggunakan algoritma seperti decision tree atau support vector machine. Metode ini belajar dari data berlabel untuk memprediksi entitas bernama. Adopsi luasnya dalam sistem NER modern disebabkan kemampuannya menangani dataset besar dan pola yang rumit. Namun, metode ini membutuhkan banyak data berlabel dan dapat menuntut sumber daya komputasi.
Metode Deep Learning
Yang terbaru adalah metode deep learning, yang memanfaatkan kekuatan neural network. Recurrent Neural Networks (RNN) dan transformer menjadi andalan banyak pihak karena kemampuannya memodelkan ketergantungan jangka panjang dalam teks. Metode ini ideal untuk tugas skala besar dengan data pelatihan berlimpah, tetapi memerlukan daya komputasi yang signifikan.
Metode Hibrida
Terakhir, tidak ada pendekatan yang cocok untuk semua dalam NER, sehingga muncul metode hibrida. Teknik ini memadukan pendekatan berbasis aturan, statistik, dan machine learning, dengan tujuan menangkap keunggulan dari semuanya. Metode ini sangat berharga saat mengekstraksi entitas dari berbagai sumber, menawarkan fleksibilitas dari beragam pendekatan. Namun, sifatnya yang saling terkait dapat membuatnya kompleks untuk diimplementasikan dan dipelihara.
Use Case Named Entity Recognition
NER telah menemukan aplikasi di berbagai sektor, mengubah cara kita mengekstrak dan memanfaatkan informasi. Berikut sekilas beberapa penerapan utamanya:
- Agregasi berita. NER berperan penting dalam mengategorikan artikel berita berdasarkan entitas utama yang disebutkan. Kategorisasi ini membantu pembaca dengan cepat menemukan kisah tentang orang, tempat, atau organisasi tertentu, sehingga proses konsumsi berita menjadi lebih efisien.
- Dukungan pelanggan. Analisis pertanyaan pelanggan menjadi lebih efektif dengan NER. Perusahaan dapat dengan cepat mengidentifikasi masalah umum terkait produk atau layanan tertentu, memastikan kekhawatiran pelanggan ditangani dengan cepat dan efektif.
- Riset. Bagi akademisi dan peneliti, NER sangat membantu. Metode ini memungkinkan mereka memindai volume teks yang besar, mengidentifikasi penyebutan entitas spesifik yang relevan dengan studi mereka. Ekstraksi otomatis ini mempercepat proses riset dan memastikan analisis data yang komprehensif.
- Analisis dokumen hukum. Di sektor hukum, menelusuri dokumen panjang untuk menemukan entitas relevan seperti nama, tanggal, atau lokasi bisa membosankan. NER mengotomatiskan proses ini, membuat riset dan analisis hukum lebih efisien.
Tantangan Named Entity Recognition
Menavigasi ranah Named Entity Recognition (NER) menghadirkan serangkaian tantangan tersendiri, meski teknik ini menjanjikan wawasan terstruktur dari data tidak terstruktur. Berikut beberapa hambatan utama di bidang ini:
- Ambiguitas. Kata bisa menipu. Istilah seperti "Amazon" bisa merujuk pada sungai atau perusahaan, tergantung konteksnya, sehingga pengenalan entitas menjadi rumit.
- Ketergantungan konteks. Sering kali makna kata berasal dari teks di sekitarnya. Kata "Apple" dalam artikel teknologi kemungkinan merujuk pada korporasi, sedangkan dalam resep, kemungkinan besar buah. Memahami nuansa semacam ini penting untuk pengenalan entitas yang akurat.
- Variasi bahasa. Ragam bahasa manusia yang kaya, dengan slang, dialek, dan perbedaan regional, dapat menjadi tantangan. Apa yang lazim di satu wilayah bisa asing di wilayah lain, mempersulit proses NER.
- Kelangkaan data. Untuk metode NER berbasis pembelajaran mesin, ketersediaan data berlabel yang komprehensif sangat krusial. Namun, memperoleh data semacam itu, khususnya untuk bahasa yang kurang umum atau domain khusus, bisa menantang.
- Generalisasi model. Meski sebuah model mungkin unggul mengenali entitas di satu domain, model yang sama bisa kewalahan di domain lain. Memastikan model NER mampu menggeneralisasi dengan baik di berbagai domain adalah tantangan yang terus menerus.
Mengatasi tantangan ini memerlukan perpaduan keahlian linguistik, algoritme canggih, dan data berkualitas. Seiring NER terus berkembang, penyempurnaan teknik untuk menanggulangi hambatan-hambatan ini akan menjadi garda depan riset dan pengembangan.
Membangun Analisis Resume Menggunakan NER
Pada bagian ini, kita akan mempelajari cara membuat sistem untuk menganalisis resume yang membantu manajer perekrutan menyaring kandidat berdasarkan keterampilan dan atribut mereka.
Mengimpor paket yang diperlukan
- Untuk pengenalan entitas, kita akan menggunakan spaCy.
- Untuk visualisasi, kita akan menggunakan pyLDAvis, wordcloud, plotly, dan matplotlib.pyplot
- Untuk pemuatan dan manipulasi data, kita akan menggunakan pandas dan numpy.
- Untuk stopword dan lemmatizer kata, kita akan menggunakan nltk.
Memuat Data dan model NER
Kita akan mulai dengan memuat file CSV yang mencakup ID unik, teks resume, dan kategori. Lalu, kita akan memuat model spacy "en_core_web_sm".
Entity Ruler
Pertama, kita perlu menambahkan pipeline entity ruler ke objek model kita. Lalu, kita dapat membuat entity ruler dengan memuat file JSON yang berisi label dan pola seperti keterampilan ".net", "cloud", dan "aws".
Membersihkan Teks
Pada bagian ini, kita akan membersihkan dataset menggunakan pustaka NLTK dengan mengikuti beberapa langkah:
- Hapus hyperlink, karakter khusus, atau tanda baca menggunakan regex.
- Ubah teks menjadi huruf kecil.
- Pisahkan teks menjadi array berdasarkan spasi.
- Lemmatize teks ke bentuk dasarnya untuk normalisasi.
- Hapus stopword bahasa Inggris.
- Tambahkan hasilnya ke dalam array.
Pengenalan Entitas
Setelah menambahkan pipeline baru ke model kita, kita dapat memvisualisasikan entitas bernama dalam teks menggunakan fungsi display spaCy. Dengan meneruskan teks masukan melalui model bahasa, Anda dapat menyoroti kata-kata beserta labelnya menggunakan displacy.render(obj, style="ent", jupyter=True, options=options).
Skor Kecocokan
Mari cocokkan resume dengan kebutuhan perusahaan. Sistem menampilkan resume yang paling mirip berdasarkan skor kemiripan. Misalnya, jika sebuah perusahaan mencari engineer cloud AWS, sistem akan menampilkan resume yang paling relevan.
Bagaimana kita mendapatkan skor kemiripan?
Kita perlu membuat fungsi Python yang mengekstrak keterampilan dari resume menggunakan entity ruler, mencocokkannya dengan keterampilan yang dibutuhkan, dan menghasilkan skor kemiripan. Aplikasi ini memerlukan loop sederhana dan pernyataan if-else. Manajer perekrutan dapat menggunakannya untuk menyaring kandidat berdasarkan keterampilan alih-alih membaca banyak PDF.
Ingin belajar lebih lanjut tentang AI dan machine learning? Lihat sumber daya berikut:
FAQ Named Entity Recognition
Apa tujuan utama Named Entity Recognition?
Untuk mengidentifikasi dan mengkategorikan entitas bernama dalam teks.
Apakah NER dapat mendeteksi emosi atau sentimen?
Tidak, itu adalah tugas analisis sentimen. Namun, keduanya dapat digunakan bersama untuk analisis teks yang komprehensif.
Apakah NER spesifik terhadap bahasa?
Konsepnya tidak, tetapi implementasinya sering kali iya. Bahasa yang berbeda memiliki struktur dan nuansa yang berbeda, sehingga model yang dilatih pada satu bahasa mungkin tidak bekerja baik pada bahasa lain.
Sebagai data scientist tersertifikasi, saya bersemangat memanfaatkan teknologi mutakhir untuk menciptakan aplikasi machine learning yang inovatif. Dengan latar belakang kuat di pengenalan ucapan, analisis dan pelaporan data, MLOps, conversational AI, dan NLP, saya mengasah keterampilan dalam mengembangkan sistem cerdas yang berdampak nyata. Selain keahlian teknis, saya juga komunikator andal yang mampu menyederhanakan konsep kompleks menjadi bahasa yang jelas dan ringkas. Karena itu, saya menjadi blogger yang dicari di bidang data science, membagikan wawasan dan pengalaman kepada komunitas profesional data yang terus berkembang. Saat ini, saya berfokus pada pembuatan dan penyuntingan konten, bekerja dengan large language model untuk mengembangkan konten yang kuat dan menarik agar membantu bisnis dan individu memaksimalkan data mereka.

