Memahami pengenalan entitas bernama khusus
NER kustom adalah layanan Azure API yang melihat dokumen, mengidentifikasi, dan mengekstrak entitas yang ditentukan pengguna. Entitas ini bisa apa saja mulai dari nama dan alamat dari laporan bank hingga penambangan pengetahuan untuk meningkatkan hasil pencarian.
NER Kustom adalah bagian dari Bahasa Azure di Foundry Tools.
NER bawaan vs kustom
Bahasa Azure menyediakan pengenalan entitas bawaan tertentu, untuk mengenali hal-hal seperti orang, lokasi, organisasi, atau URL. NER bawaan memungkinkan Anda menyiapkan layanan dengan konfigurasi minimal, dan mengekstrak entitas. Untuk memanggil NER bawaan, buat layanan Anda dan panggil titik akhir untuk layanan NER tersebut seperti ini:
<YOUR-ENDPOINT>/language/analyze-text/jobs?api-version=<API-VERSION>
| Pengganti sementara | Nilai | Contoh |
|---|---|---|
<YOUR-ENDPOINT> |
Titik akhir untuk permintaan API Anda | https://<your-resource>.cognitiveservices.azure.com |
<API-VERSION> |
Versi API yang Anda panggil | 2023-05-01 |
Isi panggilan tersebut akan berisi dokumen tempat entitas diekstrak, dan header berisi kunci layanan Anda.
Respon dari panggilan di atas berisi array entitas yang teridentifikasi, seperti:
<...>
"entities":[
{
"text":"Seattle",
"category":"Location",
"subcategory":"GPE",
"offset":45,
"length":7,
"confidenceScore":0.99
},
{
"text":"next week",
"category":"DateTime",
"subcategory":"DateRange",
"offset":104,
"length":9,
"confidenceScore":0.8
}
]
<...>
Contoh kapan menggunakan NER bawaan termasuk menemukan lokasi, nama, atau URL dalam dokumen teks panjang.
Petunjuk / Saran
Daftar lengkap kategori entitas yang dikenali tersedia di dokumen NER.
NER kustom, yang merupakan fokus dari sisa modul ini, tersedia ketika entitas yang ingin Anda ekstrak bukan bagian dari layanan bawaan atau Anda hanya ingin mengekstrak entitas tertentu. Anda dapat membuat model NER kustom sesederhana atau sekompleks yang sesuai dengan kebutuhan aplikasi Anda.
Contoh situasi di mana Anda membutuhkan NER kustom meliputi data hukum atau perbankan spesifik, pencarian informasi untuk meningkatkan pengelolaan katalog, atau identifikasi teks tertentu untuk prosedur audit. Masing-masing proyek ini memerlukan sekumpulan entitas dan data tertentu yang perlu diekstrak.
Siklus hidup proyek Bahasa Azure
Membuat model ekstraksi entitas biasanya mengikuti jalur serupa dengan sebagian besar fitur layanan Bahasa Azure:
- Tentukan entitas: Memahami data dan entitas yang ingin Anda identifikasi, dan cobalah membuatnya sejelas mungkin. Misalnya, menentukan bagian mana dari laporan bank yang ingin Anda ekstrak.
- Data tag: Label, atau tag, data Anda yang sudah ada, menentukan teks apa dalam himpunan data Anda yang sesuai dengan entitas mana. Langkah ini penting untuk dilakukan secara akurat dan lengkap, karena label yang salah atau terlewat akan mengurangi efektivitas model terlatih. Variasi dokumen input yang beragam dan berkualitas sangat berguna. Misalnya, label nama bank, nama pelanggan, alamat pelanggan, persyaratan pinjaman atau rekening tertentu, jumlah pinjaman atau rekening, dan nomor rekening.
- Melatih model: Latih model Anda setelah entitas Anda diberi label. Pelatihan mengajarkan model Anda cara mengenali entitas yang Anda beri label.
- Lihat model: Setelah model Anda dilatih, lihat hasil model. Halaman ini mencakup skor 0 hingga 1 yang didasarkan pada presisi dan pengenalan data yang diuji. Anda dapat melihat entitas mana yang bekerja dengan baik (seperti nama pelanggan) dan entitas mana yang perlu ditingkatkan (seperti nomor akun).
- Tingkatkan model: Tingkatkan model Anda dengan melihat entitas mana yang gagal diidentifikasi, dan entitas mana yang salah diekstraksi. Cari tahu data apa yang perlu ditambahkan ke pelatihan model Anda untuk meningkatkan performa. Halaman ini menunjukkan kepada Anda bagaimana entitas gagal, dan entitas mana (seperti nomor rekening) yang perlu dibedakan dari entitas serupa lainnya (seperti jumlah pinjaman).
- Sebarkan model: Setelah model Anda berkinerja sesuai keinginan, sebarkan model Anda untuk membuatnya tersedia melalui API. Dalam contoh kami, Anda dapat mengirim permintaan-permintaan ke model saat diimplementasikan untuk mengekstrak entitas dari pernyataan bank.
- Mengekstrak entitas: Gunakan model Anda untuk mengekstrak entitas. Lab mencakup cara menggunakan API, dan Anda dapat melihat referensi API untuk detail yang lebih lengkap.
Pertimbangan untuk pemilihan data dan penyempurnaan entitas
Untuk performa terbaik, Anda harus menggunakan data berkualitas tinggi untuk melatih model dan jenis entitas yang ditentukan dengan jelas.
Data berkualitas tinggi akan memungkinkan Anda menghabiskan lebih sedikit waktu untuk menyempurnakan dan menghasilkan hasil yang lebih baik dari model Anda.
- Keragaman - gunakan dataset yang seberagam mungkin tanpa kehilangan distribusi yang diharapkan dalam data dunia nyata. Anda mungkin ingin menggunakan data sampel dari sumber sebanyak mungkin, masing-masing dengan format dan jumlah entitasnya sendiri. Yang terbaik adalah meminta himpunan data Anda mewakili sumber yang berbeda sebanyak mungkin.
- Distribusi - gunakan distribusi jenis dokumen yang sesuai. Himpunan data yang lebih beragam untuk melatih model Anda akan membantu model Anda menghindari pembelajaran hubungan yang salah dalam data.
- Akurasi - gunakan data yang sedekat mungkin dengan data dunia nyata. Data palsu berfungsi untuk memulai proses pelatihan, tetapi kemungkinan akan berbeda dari data nyata dengan cara yang dapat menyebabkan model Anda tidak mengekstrak dengan benar.
Entitas juga perlu dipertimbangkan dengan hati-hati, dan didefinisikan sejelas mungkin. Hindari entitas ambigu (seperti dua nama di samping satu sama lain pada laporan bank), karena akan membuat model berjuang untuk membedakan. Jika memiliki beberapa entitas ambigu diperlukan, pastikan untuk memiliki lebih banyak contoh untuk dipelajari model Anda sehingga dapat memahami perbedaannya.
Menjaga entitas Anda tetap berbeda juga akan sangat membantu performa model Anda. Misalnya, mencoba mengekstrak sesuatu seperti "Info kontak" yang bisa berupa nomor telepon, handel media sosial, atau alamat email akan memerlukan beberapa contoh untuk mengajarkan model Anda dengan benar. Sebagai gantinya, cobalah untuk memecahnya menjadi entitas yang lebih spesifik seperti "Telepon", "Email", dan "Media sosial" dan biarkan model melabeli jenis informasi kontak apa pun yang ditemukannya.
Cara mengekstrak entitas
Untuk mengirimkan tugas ekstraksi, API memerlukan isi JSON untuk menentukan tugas mana yang akan dijalankan. Untuk NER kustom, tugas untuk payload JSON adalah CustomEntityRecognition.
Payload Anda akan terlihat mirip dengan JSON berikut:
{
"displayName": "string",
"analysisInput": {
"documents": [
{
"id": "doc1",
"text": "string"
},
{
"id": "doc2",
"text": "string"
}
]
},
"tasks": [
{
"kind": "CustomEntityRecognition",
"taskName": "MyRecognitionTaskName",
"parameters": {
"projectName": "MyProject",
"deploymentName": "MyDeployment"
}
}
]
}
Batas proyek
Layanan Bahasa Azure memberlakukan pembatasan berikut:
- Pelatihan - setidaknya 10 file, dan tidak lebih dari 100.000
- Penyebaran - 10 nama penyebaran per proyek
-
Api
- Penulisan - API ini membuat proyek, melatih, dan menyebarkan model Anda. Dibatasi hingga 10 POST dan 100 GET per menit
- Analisis - API ini melakukan pekerjaan untuk benar-benar mengekstrak entitas; ini meminta tugas dan mengambil hasilnya. Dibatasi hingga 20 GET atau POST
- Proyek - hanya 1 akun penyimpanan per proyek, 500 proyek per sumber daya, dan 50 model terlatih per proyek
- Entitas - setiap entitas dapat mencapai 500 karakter. Anda dapat memiliki hingga 200 jenis entitas.
Lihat halaman Batas layanan untuk Bahasa Azure untuk informasi terperinci.