Pencocokan dengan sintaks diperluas di spaCy
Ekstraksi informasi berbasis aturan sangat penting untuk setiap pipeline NLP. Kelas Matcher memungkinkan pola menjadi lebih ekspresif dengan mengizinkan beberapa operator di dalam kurung kurawal. Operator ini digunakan untuk perbandingan yang diperluas dan mirip dengan operator Python seperti in, not in, dan operator perbandingan. Pada latihan ini, Anda akan berlatih menggunakan fungsionalitas pencocokan spaCy, yaitu Matcher, untuk menemukan kecocokan bagi istilah-istilah tertentu dari sebuah teks contoh.
Kelas Matcher sudah diimpor dari pustaka spacy.matcher. Anda akan menggunakan kontainer Doc dari teks contoh pada latihan ini dengan memanggil doc. Model spaCy yang sudah dimuat sebelumnya juga tersedia sebagai nlp.
Latihan ini adalah bagian dari kursus
Pemrosesan Bahasa Alami dengan spaCy
Petunjuk latihan
- Definisikan objek matcher menggunakan
Matcherdannlp. - Gunakan operator
INuntuk mendefinisikan pola yang mencocokkantiny squaresdantiny mouthful. - Gunakan pola ini untuk mencari kecocokan pada
doc. - Cetak indeks token awal dan akhir serta rentang teks dari kecocokan tersebut.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
nlp = spacy.load("en_core_web_sm")
doc = nlp(example_text)
# Define a matcher object
matcher = Matcher(nlp.____)
# Define a pattern to match tiny squares and tiny mouthful
pattern = [{"lower": ____}, {"lower": {____: ["squares", "mouthful"]}}]
# Add the pattern to matcher object and find matches
matcher.____("CustomMatcher", [____])
matches = ____(____)
# Print out start and end token indices and the matched text span per match
for match_id, start, end in matches:
print("Start token: ", ____, " | End token: ", ____, "| Matched text: ", doc[____:____].text)