MulaiMulai sekarang secara gratis

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

Lihat Kursus

Petunjuk latihan

  • Inisialisasi kelas PhraseMatcher dengan sebuah attr untuk mencocokkan bentuk (shape) dari terms yang diberikan.
  • Buat patterns untuk ditambahkan ke objek PhraseMatcher.
  • Temukan kecocokan terhadap pola yang diberikan dan cetak indeks token awal dan akhir serta bagian yang cocok dari text yang 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)
Edit dan Jalankan Kode