Класифікація токенів

Natural Language Processing (NLP) in Python

Fouad Trad

Machine Learning Engineer

Класифікація тексту проти класифікації токенів

Класифікація тексту

  • Класифікує цілі речення або пари текстів

Зображення із завданнями класифікації тексту та QNLI, показаними у попередніх відео.

Natural Language Processing (NLP) in Python

Класифікація тексту проти класифікації токенів

Класифікація тексту

  • Класифікує цілі речення або пари текстів

Зображення із завданнями класифікації тексту та QNLI, показаними у попередніх відео.

Класифікація токенів

  • Призначає мітки токенам у межах речення

Зображення речення, поділеного на слова різних кольорів, що відповідають різним класам.

  • Розпізнавання іменованих сутностей (NER)
  • Частини мови (PoS) — тегування
Natural Language Processing (NLP) in Python

Розпізнавання іменованих сутностей (NER)

  • Визначає сутності: імена, локації, організації, дати тощо

Зображення аналізу NER для речення «Apple opened a new office in Toronto in March 2023», де Apple розпізнано як організацію, Toronto — як локацію, а March 2023 — як дату.

  • Корисно для:
    • Пошуку інформації
    • Відповіді на запитання
Natural Language Processing (NLP) in Python

NER у коді

from transformers import pipeline

ner_pipeline = pipeline(task="ner",
model="dslim/bert-base-NER",
grouped_entities=True)
ner_results = ner_pipeline("Zara Venn established NovaCore Dynamics in London.")
print(ner_results)
[{'entity_group': 'PER', 'score': np.float32(0.99840075), 'word': 'Zara Venn', 'start': 0, 'end': 9}, 
 {'entity_group': 'ORG', 'score': np.float32(0.99875560), 'word': 'NovaCore Dynamics', 'start': 21, 'end': 38}, 
 {'entity_group': 'LOC', 'score': np.float32(0.99960726), 'word': 'London', 'start': 42, 'end': 48}]
Natural Language Processing (NLP) in Python

Тегування частин мови (PoS)

  • Призначає кожному слову граматичну роль (іменник, дієслово, прикметник)

Зображення PoS-тегів для речення «The quick fox jumps over the lazy dog», де «the» — детермінатор, «quick» і «lazy» — прикметники, «fox» і «dogs» — іменники, «jumps» — дієслово, «over» — прийменник.

  • Корисно для:
    • Синтаксичного розбору
    • Граматичної корекції
    • Генерації тексту
Natural Language Processing (NLP) in Python

PoS у коді

pos_pipeline = pipeline(task="token-classification",

model="vblagoje/bert-english-uncased-finetuned-pos",
grouped_entities=True)
pos_results = pos_pipeline("Zara Venn established NovaCore Dynamics in London.") print(pos_results)
[{'entity_group': 'PROPN', 'score': np.float32(0.9982983), 'word': 'zara venn', 'start': 0, 'end': 9},  
 {'entity_group': 'VERB', 'score': np.float32(0.99940944), 'word': 'established', 'start': 10, 'end': 21},  
 {'entity_group': 'PROPN', 'score': np.float32(0.99455726), 'word': 'novacore dynamics', 'start': 22, 'end': 39},  
 {'entity_group': 'ADP', 'score': np.float32(0.99935526), 'word': 'in', 'start': 40, 'end': 42},  
 {'entity_group': 'PROPN', 'score': np.float32(0.99847955), 'word': 'london', 'start': 43, 'end': 49}]
Natural Language Processing (NLP) in Python

Давайте потренуємось!

Natural Language Processing (NLP) in Python

Preparing Video For Download...