Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Лематизація | Стемінг і лематизація
Вступ до NLP з Python

Лематизація

Свайпніть щоб показати меню

Розуміння лематизації

Note
Визначення

Лематизація — це техніка нормалізації тексту, яка використовується в NLP для приведення слів до їх словникової форми, відомої як лема.

На відміну від стемінгу, який грубо відсікає афікси, лематизація враховує контекст і перетворює слово на його словникову форму. Наприклад, 'am', 'are' та 'is' лематизуються до 'be'. Такий підхід може суттєво зменшити розмір словника (кількість унікальних слів) у великих текстових корпусах, що підвищує ефективність під час навчання моделей.

З іншого боку, хоча лематизація є більш точною, вона також є більш ресурсоємною і може займати багато часу при роботі з великими наборами даних. Крім того, для ще більшої точності рекомендується виконувати морфологічний аналіз і частиномовне тегування перед лематизацією.

Note
Примітка

Не переймайтеся щодо part-of-speech tagging зараз, оскільки це наступна тема, яку ви вивчатимете.

Лематизація з NLTK

WordNet Lemmatizer, що надається бібліотекою NLTK, використовує корпус WordNet для виконання лематизації.

Note
Дізнайтеся більше

WordNet — це семантично насичена лексична база даних англійської мови, яка значно перевершує простий корпус. Вона групує слова у набори синонімів, або synsets, кожен з яких відображає окрему концепцію та супроводжується визначеннями й прикладами використання. Крім того, WordNet кодує змістовні зв'язки між цими synsets — такі як hypernyms (ширші, загальніші терміни) та hyponyms (вужчі, конкретніші терміни) — забезпечуючи потужну основу для дослідження та розрізнення значень слів.

Під час використання WordNet Lemmatizer, цільове слово шукається у базі даних WordNet для знаходження найбільш відповідної леми цього слова.

Як зазначено вище, оскільки слова можуть мати різні значення в різних контекстах (наприклад, "running" як дієслово та "running" як іменник), лематизатор може вимагати вказати частину мови (наприклад, дієслово, іменник, прикметник). Це допомагає вибрати правильну лему залежно від ролі слова у реченні.

1234567891011
from nltk.stem import WordNetLemmatizer import nltk # Download the WordNet corpus nltk.download('wordnet') # Initialize the WordNet lemmatizer lemmatizer = WordNetLemmatizer() # Parts of speech, 'v' for verb and 'n' for noun parts_of_speech = ['v', 'n'] # Lemmatize words lemmatized_words = [lemmatizer.lemmatize("running", pos) for pos in parts_of_speech] print("Lemmatized words:", lemmatized_words)
Опис коду
expand arrow
from nltk.stem import WordNetLemmatizer

Цей рядок імпортує клас WordNetLemmatizer.

nltk.download('wordnet')

Цей рядок завантажує корпус WordNet і таким чином забезпечує можливість використання всіх функцій, пов'язаних із WordNet, таких як лематизація.

lemmatizer = WordNetLemmatizer()

Цей рядок створює екземпляр класу WordNetLemmatizer, який використовується для виконання лематизації.

parts_of_speech = ['v', 'n']

Цей рядок створює список частин мови, які будуть використовуватися під час лематизації.

lemmatized_words = [lemmatizer.lemmatize("running", pos) for pos in parts_of_speech]

Цей рядок створює список лематизованих слів за допомогою list comprehension. Процес лематизації виконується через метод lemmatize() об'єкта lemmatizer. Рядок, що представляє слово, має бути першим аргументом, а бажана частина мови — другим необов'язковим аргументом ('v' для дієслова, 'a' для прикметника, 'n' для іменника тощо).

Можна не вказувати частину мови, викликавши lemmatizer.lemmatize("running"), але, як видно, різні частини мови дають різні результати. Тому найкраще спочатку виконати тегування частин мови.

question mark

Яка основна перевага лематизації порівняно зі стемінгом?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 2. Розділ 3
some-alt