PhraseMatcher di spaCy
Saat memproses teks tidak terstruktur, Anda sering memiliki daftar dan kamus panjang yang ingin dipindai dan dicocokkan dalam teks tertentu. Pola Matcher dibuat secara manual dan setiap token perlu dikodekan satu per satu. Jika Anda memiliki daftar frasa yang panjang, Matcher bukan lagi opsi terbaik. Dalam kasus ini, kelas PhraseMatcher membantu mencocokkan kamus yang panjang. Pada latihan ini, Anda akan berlatih mengambil pola dengan bentuk (shape) yang sesuai untuk beberapa term menggunakan kelas PhraseMatcher.
Model en_core_web_sm sudah dimuat dan siap Anda gunakan sebagai nlp. Kelas PhraseMatcher sudah diimpor. Sebuah string text dan daftar terms tersedia untuk Anda gunakan.
Latihan ini adalah bagian dari kursus
Pemrosesan Bahasa Alami dengan spaCy
Petunjuk latihan
- Inisialisasi kelas
PhraseMatcherdengan sebuahattruntuk mencocokkan bentuk (shape) daritermsyang diberikan. - Buat
patternsuntuk ditambahkan ke objekPhraseMatcher. - Temukan kecocokan terhadap pola yang diberikan dan cetak indeks token awal dan akhir serta bagian yang cocok dari
textyang diberikan.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
text = "There are only a few acceptable IP addresse: (1) 127.100.0.1, (2) 123.4.1.0."
terms = ["110.0.0.0", "101.243.0.0"]
# Initialize a PhraseMatcher class to match to shapes of given terms
matcher = ____(nlp.____, attr = ____)
# Create patterns to add to the PhraseMatcher object
patterns = [nlp.make_doc(____) for term in terms]
matcher.____("IPAddresses", patterns)
# Find matches to the given patterns and print start and end characters and matches texts
doc = ____
matches = ____
for match_id, start, end in matches:
print("Start token: ", ____, " | End token: ", ____, "| Matched text: ", doc[____:____].text)