Saya hanya mencoba menandai subbagian dokumen sebagai rentang sesuai dokumentasi Spacy

import spacy
nlp = spacy.load('en_core_web_sm')
sentence = "The car with the white wheels was being confiscated by the police when the owner returns from robbing a bank"
doc = nlp(sentence)

doc.spans['remove_parts'] = [doc[2:6], doc[9:12]]
doc.spans['remove_parts']

Ini terlihat cukup lurus ke depan, tetapi Spacy mengembalikan kesalahan berikut (dan mengaitkannya ke baris kedua yaitu tugas):

AttributeError: 'spacy.tokens.doc.Doc' object has no attribute 'spans'

Saya tidak bisa melihat apa yang terjadi sama sekali. Apakah ini bug Spacy? Apakah properti spans telah dihapus meskipun masih dalam dokumentasi? Jika tidak, apa yang saya lewatkan?

PD: Saya menggunakan Colab untuk ini. Dan spacy.info menunjukkan:

spaCy version    2.2.4                         
Location         /usr/local/lib/python3.7/dist-packages/spacy
Platform         Linux-4.19.112+-x86_64-with-Ubuntu-18.04-bionic
Python version   3.7.10                        
Models           en    
0
Martin 10 Mei 2021, 23:46

1 menjawab

Jawaban Terbaik

Kode yang Anda kutip

doc = "The car with the white wheels was being confiscated by the police when the owner returns from robbing a bank"
doc.spans['remove_parts'] = [doc[2:6], doc[9:12]]
doc.spans['remove_parts']

Akan memberikan kesalahan

AttributeError: 'str' object has no attribute 'spans'

Karena Anda belum benar-benar membuat objek Doc.

Sebagai gantinya, Anda perlu melakukan sesuatu seperti ini:

nlp = English()
text = "The car with the white wheels was being confiscated by the police when the owner returns from robbing a bank"
doc = nlp(text)
doc.spans['remove_parts'] = [doc[2:6], doc[9:12]]
doc.spans['remove_parts']

Dan ini akan bekerja dengan benar dari spaCy v3.0 dan seterusnya. Jika tidak - dapatkah Anda memverifikasi bahwa Anda sebenarnya menjalankan kode dari lingkungan virtual yang benar dalam colab (dan bukan lingkungan yang berbeda menggunakan spaCy v2)? Kami sebelumnya telah melihat masalah di mana Colab masih akan mengakses penginstalan spaCy yang lebih lama di sistem, alih-alih mengambil kode dari venv yang benar. Untuk memeriksa ulang, Anda dapat mencoba menjalankan kode di konsol Python secara langsung, bukan melalui Colab.

1
Sofie VL 11 Mei 2021, 19:19