RegEx dengan EntityRuler di spaCy
Regular expression, atau RegEx, digunakan untuk ekstraksi informasi berbasis aturan dengan pola pencocokan string yang kompleks. RegEx dapat digunakan untuk mengambil pola atau mengganti pola yang cocok dalam sebuah string dengan pola lain. Pada latihan ini, Anda akan berlatih menggunakan EntityRuler di spaCy untuk menemukan alamat email dalam text yang diberikan.
Paket spaCy sudah diimpor untuk Anda. Anda dapat menggunakan \d untuk mencocokkan pola string yang mewakili metakarakter yang cocok dengan digit apa pun dari 0 hingga 9.
Sebuah pola spaCy dapat menggunakan REGEX sebagai atribut. Dalam hal ini, polanya akan berbentuk [{"TEXT": {"REGEX": "<a given pattern>"}}].
Latihan ini adalah bagian dari kursus
Pemrosesan Bahasa Alami dengan spaCy
Petunjuk latihan
- Definisikan pola untuk mencocokkan nomor telepon dengan bentuk
8888888888yang akan digunakan olehEntityRuler. - Muat model bahasa Inggris
spaCykosong dan tambahkan komponenEntityRulerke pipeline. - Tambahkan pola yang telah disusun ke komponen
EntityRuler. - Jalankan model dan cetak tuple berisi teks dan tipe entitas untuk
textyang diberikan.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
text = "Our phone number is 4251234567."
# Define a pattern to match phone numbers
patterns = [{"label": "PHONE_NUMBERS", "pattern": [{"TEXT": {"REGEX": "(____){____}"}}]}]
# Load a blank model and add an EntityRuler
nlp = spacy.____("en")
ruler = nlp.____("entity_ruler")
# Add the compiled patterns to the EntityRuler
ruler.____(patterns)
# Print the tuple of entities texts and types for the given text
doc = ____(____)
print([(ent.____, ent.____) for ent in doc.____])