Лематизація
Свайпніть щоб показати меню
Розуміння лематизації
Лематизація — це техніка нормалізації тексту, яка використовується в NLP для приведення слів до їх словникової форми, відомої як лема.
На відміну від стемінгу, який грубо відсікає афікси, лематизація враховує контекст і перетворює слово на його словникову форму. Наприклад, 'am', 'are' та 'is' лематизуються до 'be'. Такий підхід може суттєво зменшити розмір словника (кількість унікальних слів) у великих текстових корпусах, що підвищує ефективність під час навчання моделей.
З іншого боку, хоча лематизація є більш точною, вона також є більш ресурсоємною і може займати багато часу при роботі з великими наборами даних. Крім того, для ще більшої точності рекомендується виконувати морфологічний аналіз і частиномовне тегування перед лематизацією.
Не переймайтеся щодо part-of-speech tagging зараз, оскільки це наступна тема, яку ви вивчатимете.
Лематизація з NLTK
WordNet Lemmatizer, що надається бібліотекою NLTK, використовує корпус WordNet для виконання лематизації.
WordNet — це семантично насичена лексична база даних англійської мови, яка значно перевершує простий корпус. Вона групує слова у набори синонімів, або synsets, кожен з яких відображає окрему концепцію та супроводжується визначеннями й прикладами використання. Крім того, WordNet кодує змістовні зв'язки між цими synsets — такі як hypernyms (ширші, загальніші терміни) та hyponyms (вужчі, конкретніші терміни) — забезпечуючи потужну основу для дослідження та розрізнення значень слів.
Під час використання WordNet Lemmatizer, цільове слово шукається у базі даних WordNet для знаходження найбільш відповідної леми цього слова.
Як зазначено вище, оскільки слова можуть мати різні значення в різних контекстах (наприклад, "running" як дієслово та "running" як іменник), лематизатор може вимагати вказати частину мови (наприклад, дієслово, іменник, прикметник). Це допомагає вибрати правильну лему залежно від ролі слова у реченні.
1234567891011from 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)
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"), але, як видно, різні частини мови дають різні результати. Тому найкраще спочатку виконати тегування частин мови.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат