2 votes

Comment résoudre le problème d'importation lors de l'importation de 'SentenceSegmenter' du paquet 'spacy.pipeline' ?

ImportError: cannot import name 'SentenceSegmenter' from 'spacy.pipeline' 

Version de Spacy : 3.2.1

Je sais que cette classe est destinée à une version antérieure de Spacy, mais y aurait-il quelque chose de similaire pour cette version de Spacy ?

2voto

snekz Points 46

Il existe plusieurs méthodes pour effectuer la segmentation des phrases dans l'espace. Vous pouvez les découvrir dans la documentation ici : https://spacy.io/usage/linguistic-features#sbd .

Cet exemple est copié tel quel à partir de la documentation, montrant comment segmenter des phrases sur la base d'un modèle de langue anglaise.

import spacy

nlp = spacy.load("en_core_web_sm")
doc = nlp("This is a sentence. This is another sentence.")
assert doc.has_annotation("SENT_START")
for sent in doc.sents:
    print(sent.text)

Vous pouvez également utiliser celle basée sur des règles pour effectuer un découpage de la ponctuation basé uniquement sur la langue, comme suit (également tiré de la documentation) :

import spacy
from spacy.lang.en import English

nlp = English()  # just the language with no pipeline
nlp.add_pipe("sentencizer")
doc = nlp("This is a sentence. This is another sentence.")
for sent in doc.sents:
    print(sent.text)

Cela devrait fonctionner pour spacy 3.0.5 et plus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X