Пропустить до содержимого

Как использовать/исправить python -m spacy download en_core_web_sm?

[

Введение в NLP и spaCy

В этой главе мы познакомимся с областью обработки естественного языка (NLP) и библиотекой spaCy. Мы узнаем о применении NLP, таком как распознавание именованных сущностей и разработка чат-ботов на базе искусственного интеллекта. Вы научитесь использовать мощную библиотеку spaCy для выполнения различных задач обработки естественного языка, таких как токенизация, сегментация предложений, маркировка частей речи и распознавание именованных сущностей.

Установка spaCy

Перед началом работы нам необходимо установить библиотеку spaCy и загрузить необходимые модели. Выполните следующую команду в терминале или командной строке:

python -m spacy download en_core_web_sm

Токенизация

Первая задача, с которой мы столкнемся, - это токенизация текста. Токенизация - это процесс разделения текста на отдельные токены или слова. Для этого мы используем метод tokenize() из библиотеки spaCy. Ниже приведен пример кода, демонстрирующий это:

import spacy
# Загрузка модели
nlp = spacy.load("en_core_web_sm")
# Текст для токенизации
text = "Hello, world! How are you?"
# Токенизация текста
doc = nlp(text)
# Вывод каждого токена
for token in doc:
print(token.text)

Результат выполнения данного кода будет следующим:

Hello
,
world
!
How
are
you
?

Сегментация предложений

Следующей задачей будет сегментация предложений. В spaCy мы можем выполнить это с помощью метода sentencizer(). Вот пример кода:

import spacy
# Загрузка модели
nlp = spacy.load("en_core_web_sm")
# Текст для сегментации
text = "Hello, world! How are you? I'm fine, thank you."
# Активация модуля сегментации
nlp.add_pipe("sentencizer")
# Сегментация предложений
doc = nlp(text)
# Вывод каждого предложения
for sent in doc.sents:
print(sent.text)

Результат будет следующим:

Hello, world!
How are you?
I'm fine, thank you.

Маркировка частей речи

Маркировка частей речи (POS-тегирование) является важной задачей в обработке естественного языка. Она позволяет определить часть речи каждого слова в тексте. В spaCy мы можем получить маркировку частей речи при помощи метода pos_tag() или обратиться к атрибуту pos_ для каждого токена. Вот пример кода:

import spacy
# Загрузка модели
nlp = spacy.load("en_core_web_sm")
# Текст для маркировки частей речи
text = "I love eating pizza."
# Маркировка частей речи
doc = nlp(text)
# Вывод каждого токена с маркировкой части речи
for token in doc:
print(token.text, token.pos_)

Результат будет следующим:

I PRON
love VERB
eating VERB
pizza NOUN

Распознавание именованных сущностей

Распознавание именованных сущностей (NER) - это процесс выявления и классификации именованных сущностей в тексте, таких как имена людей, названия организаций или географические места. SpaCy предоставляет встроенные модели для выполнения NER. Вот пример кода:

import spacy
# Загрузка модели
nlp = spacy.load("en_core_web_sm")
# Текст для распознавания именованных сущностей
text = "Apple Inc. was founded by Steve Jobs and Steve Wozniak."
# Распознавание именованных сущностей
doc = nlp(text)
# Вывод каждой именованной сущности и ее класса
for ent in doc.ents:
print(ent.text, ent.label_)

Результат будет следующим:

Apple Inc. ORG
Steve Jobs PERSON
Steve Wozniak PERSON

Заключение

В этой главе мы рассмотрели основы библиотеки spaCy и узнали, как выполнять основные задачи обработки естественного языка, такие как токенизация, сегментация предложений, маркировка частей речи и распознавание именованных сущностей. Мы также изучили примеры кода, чтобы продемонстрировать каждую из этих задач. В следующей главе мы погрузимся глубже в возможности библиотеки spaCy и изучим лингвистические аннотации и векторы слов.