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 merupakan bagian dari kursus
Pemrosesan Bahasa Alami dengan spaCy
Instruksi 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 langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
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)