spaCy — одна из основных языковых библиотек Python для обработки естественного языка (NLP). В этой статье вы познакомитесь с основами методов NLP с помощью spaCy.
1- Установите spaCy:
!pip install spacy import spacy
2- Скачать модели и данные:
В Spacy есть обученные конвейеры и весовые коэффициенты, необходимо запустить функции spacy:
Пример: python -m spacy скачать en_core_web_sm
Английский по умолчанию,
Пример для немецкого языка:
python -m spacy download de_core_news_sm
Для получения дополнительной информации посетите https://spacy.io/models официальную документацию
после загрузки моделей их необходимо загрузить:
nlp = spacy.load(‘en_core_web_sm’)
эта строка означает создание объекта nlp, чтобы spaCy и модели были успешно установлены и загружены.
3-Токенизация с помощью spaCy:
- Прочитайте предложение с spaCy :
doc = nlp(“The sky over New York is blue”)
- Word Tokenization: получите доступ к токенам и распечатайте их
doc = nlp(“The sky over New York is blue”)
- Создать диапазон: тот же объект документа
from spacy.tokens import Span span = Span(doc, 4, 6 ) print(span.text) #York is
- Найдите предложения со пробелом:
text=nlp(‘I love Natural Language Processing. I like Python’) sentences = list(text.sents) print(len(sentences)) ) #2 for s in sentences: print (s) # I love Natural Language Processing. I like Python
4- Стоп-слова:
Стоп-слова, такие как «тоже, но» в английском языке, как правило, удаляются для решения проблемы НЛП. Давайте посмотрим, как обнаруживать и удалять стоп-слова с помощью spaCy.
- Сначала давайте импортируем стоп-слова spacy для английского языка.
stop_words = spacy.lang.en.stop_words.STOP_WORDS len(stop_words) #326 type(stop_words) #set
- давайте посмотрим первые пять стоп-слов: мы преобразуем набор стоп-слов в список Python, чтобы сделать нарезку
for stop_word in list(stop_words)[:5]: print(stop_word) the result : have ‘d before hereafter indeed
- вы можете удалить стоп-слова пробела из входного текста:
for token in text: if not token.is_stop: print (token.text)
4-лемматизация:
Лемматизация — это процесс вырезания конца слова, чтобы сохранить только корень слова. Мы напечатаем каждый токен и его лемму:
text=nlp('Someone is helping him to learn') for token in text: print (token, token.lemma_) the result : Someone someone is be helping help him he to to learn learn
5- Часть речевой маркировки:
идентификация речевой маркировки входного текста с помощью spaCy. Тегирование части речи объясняет роль определенного слова в предложении, например, «глагол», «существительное». Пример :
text=nlp('Someone is helping him to learn') for token in text: print (token, token.tag_) #the result : Someone NN is VBZ helping VBG him PRP to TO learn VB #we can print explanation provided by spaCy : print (token, spacy.explain(token.tag_)) #the result : Someone noun, singular or mass is verb, 3rd person singular present helping verb, gerund or present participle him pronoun, personal to infinitival "to" learn verb, base form
Распознавание 6 названных объектов:
Распознавание именованных сущностей (NER) — один из наиболее важных и часто используемых инструментов НЛП. NER позволяет обнаруживать объекты из входного текста и классифицировать их по различным категориям, таким как «человек». Давайте посмотрим на пример с spaCy:
doc = nlp(“Donald Trump was the president of USA in 2020”) [(ent.text, ent.label_) for ent in doc.ents] # [(‘Donald Trump’, ‘PERSON’), (‘USA’, ‘GPE’), (‘2020’, ‘DATE’)]
больше примеров именованных сущностей для лучшего понимания:
Человек: Криштиану Роналду
GPE: Египет, Германия
ДАТА: 4 апреля 2022 г.
ОРГАНИЗАЦИЯ: Тесла, Мета