Обработка естественного языка с помощью spaCy
Azadeh Mobasher
Principal Data Scientist
import spacynlp = spacy.load("en_core_web_sm")doc = nlp("Here's my spaCy pipeline.")
spaCyspacy.load(), чтобы получить nlp — объект класса LanguageLanguage представляет собой конвейер обработки текстаnlp() к любому тексту, чтобы получить контейнер Doc
spaCy выполняет ряд шагов обработки с помощью класса Language:
spaCy есть несколько структур данных для представления текста:
| Название | Описание |
|---|---|
Doc |
Контейнер для доступа к лингвистическим аннотациям текста |
Span |
Фрагмент объекта Doc |
Token |
Отдельный токен: слово, знак препинания, пробел и т. д. |
spaCy зависит от загруженной модели и её возможностей.
| Компонент | Название | Описание |
|---|---|---|
| Tokenizer | Токенизатор | Разбивает текст на токены и создаёт объект Doc |
| Tagger | Теггер | Присваивает теги частей речи |
| Lemmatizer | Лемматизатор | Приводит слова к начальной форме |
| EntityRecognizer | NER | Обнаруживает и размечает именованные сущности |
Каждый компонент обладает уникальными возможностями обработки текста
import spacy nlp = spacy.load("en_core_web_sm") doc = nlp("Tokenization splits a sentence into its tokens.")print([token.text for token in doc])
['Tokenization', 'splits', 'a', 'sentence', 'into', 'its', 'tokens', '.']
DependencyParserimport spacy nlp = spacy.load("en_core_web_sm") text = "We are learning NLP. This course introduces spaCy." doc = nlp(text)for sent in doc.sents: print(sent.text)
We are learning NLP.
This course introduces spaCy.
import spacy nlp = spacy.load("en_core_web_sm") doc = nlp("We are seeing her after one year.")print([(token.text, token.lemma_) for token in doc])
[('We', 'we'), ('are', 'be'), ('seeing', 'see'), ('her', 'she'),
('after', 'after'), ('one', 'one'), ('year', 'year'), ('.', '.')]
Обработка естественного языка с помощью spaCy