Позначення POS за допомогою NLTK та відсікання в NLP (ПРИКЛАДИ)

Зміст:

Anonim

Позначення POS

Позначення POS (позначення частин мови) - це процес розмітки слів у текстовому форматі для певної частини мови на основі її визначення та контексту. Він відповідає за читання тексту мовою та присвоєння кожному слову певної лексеми (частини мови). Його ще називають граматичним позначенням.

Давайте навчимось на прикладі частини мови NLTK:

Вхідні дані: Все, що дозволяє нам.

Результат : [('Все', NN), ('до', TO), ('дозвіл', VB), ('нам', PRP)]

Кроки, задіяні в прикладі позначення POS:

  • Токенізувати текст (word_tokenize)
  • застосувати pos_tag до вищевказаного кроку, який є nltk.pos_tag (tokenize_text)

Приклади тегів POS NLTK наведені нижче:

Абревіатура Значення
ЦК координаційний зв’язок
CD кардинальна цифра
DT визначальник
ПРИКЛАД екзистенційне там
FW іноземне слово
В прийменник / підрядний зв’язок
JJ Цей POS-тег NLTK є прикметником (великий)
JJR прикметник, порівняльний (більший)
JJS прикметник, чудовий (найбільший)
LS ринок списків
Доктор медичних наук модальний (міг, воля)
НН іменник, однина (кішка, дерево)
NNS іменник множина (столи)
NNP власне іменник, однина (сара)
NNPS власний іменник, множина (індіанці чи американці)
PDT предопределитель (усі, обидва, половина)
POS присвійне закінчення (батьків)
PRP особистий займенник (її, вона сама, він, сам)
PRP $ присвійний займенник (her, his, mine, my, our)
RB прислівник (зрідка, швидко)
RBR прислівник, порівняльний (більший)
RBS прислівник, надмірний (найбільший)
RP частинка (близько)
ДО нескінченний маркер (до)
UH вставне слово (до побачення)
В.Б. дієслово (запитати)
VBG дієслово gerund (суддя)
VBD дієслово минулого часу (благальний)
ВБН дієприкметник минулого часу (возз'єднаний)
VBP дієслово, теперішній час не 3-ї особи однини (обгортання)
VBZ дієслово, теперішній час з третьою особою однини (основи)
WDT wh-визначник (що, що)
WP wh- займенник (хто)
WRB wh- прислівник (як)

Наведений вище список тегів NLTK POS містить усі теги POS NLTK. POS-мітка NLTK використовується для призначення граматичної інформації кожного слова речення. Встановлення, імпорт та завантаження всіх пакетів POS NLTK завершено.

Що таке шматування в НЛП?

Накопичення в НЛП - це процес отримання невеликих фрагментів інформації та їх групування у великі одиниці. Основне використання Chunking - це створення груп "іменникових фраз". Застосовується для додавання структури до речення, дотримуючись позначок POS в поєднанні з регулярними виразами. Отриману групу слів називають "шматками". Його ще називають неглибоким розбором.

При неглибокому розборі між корінням і листям існує максимум один рівень, тоді як глибокий синтаксичний аналіз складає більше одного рівня. Неглибокий синтаксичний розбір також називають легким синтаксичним аналізом або шматками.

Правила для шматування:

Немає заздалегідь визначених правил, але ви можете комбінувати їх відповідно до потреб та вимог.

Наприклад, вам потрібно позначити із речення іменник, дієслово (минулий час), прикметник та координаційний зв’язок. Ви можете використовувати правило, як показано нижче

шматок: {*** ?}

Наступна таблиця показує, що означає різний символ:

Назва символу Опис
. Будь-який символ, крім нового рядка
* Зіставте 0 або більше повторень
? Зіставте 0 або 1 повторення

Тепер давайте напишемо код, щоб краще зрозуміти правило

from nltk import pos_tagfrom nltk import RegexpParsertext ="learn php from guru99 and make study easy".split()print("After Split:",text)tokens_tag = pos_tag(text)print("After Token:",tokens_tag)patterns= """mychunk:{***?}"""chunker = RegexpParser(patterns)print("After Regex:",chunker)output = chunker.parse(tokens_tag)print("After Chunking",output)

Вихідні дані

After Split: ['learn', 'php', 'from', 'guru99', 'and', 'make', 'study', 'easy']After Token: [('learn', 'JJ'), ('php', 'NN'), ('from', 'IN'), ('guru99', 'NN'), ('and', 'CC'), ('make', 'VB'), ('study', 'NN'), ('easy', 'JJ')]After Regex: chunk.RegexpParser with 1 stages:RegexpChunkParser with 1 rules:***?'>After Chunking (S(mychunk learn/JJ)(mychunk php/NN)from/IN(mychunk guru99/NN and/CC)make/VB(mychunk study/NN easy/JJ))

Висновок із наведеного вище прикладу тегування частини мовлення Python: "make" - це дієслово, яке не входить до правила, тому воно не позначене як mychunk

Випадок використання шматок

Чанкування використовується для виявлення сутності. Сутність - це та частина речення, за допомогою якої машина отримує значення для будь-якого наміру

Example:Temperature of New York.Here Temperature is the intention and New York is an entity.

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

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

import nltktext = "learn php from guru99"tokens = nltk.word_tokenize(text)print(tokens)tag = nltk.pos_tag(tokens)print(tag)grammar = "NP: {
?*}"cp =nltk.RegexpParser(grammar)result = cp.parse(tag)print(result)result.draw() # It will draw the pattern graphically which can be seen in Noun Phrase chunking

Вихід :

['learn', 'php', 'from', 'guru99'] -- These are the tokens[('learn', 'JJ'), ('php', 'NN'), ('from', 'IN'), ('guru99', 'NN')] -- These are the pos_tag(S (NP learn/JJ php/NN) from/IN (NP guru99/NN)) -- Noun Phrase Chunking

Графік

Іменник словосполучення шматок графік

З графіку ми можемо зробити висновок, що "learn" і "guru99" - це два різні лексеми, але вони класифікуються як іменні фрази, тоді як лексема "from" не належить іменниковій фразі.

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

Резюме

  • Позначення POS в NLTK - це процес розмітки слів у текстовому форматі для певної частини мови на основі її визначення та контексту.
  • Деякі приклади тегів POS NLTK: CC, CD, EX, JJ, MD, NNP, PDT, PRP $, TO тощо.
  • POS-мітка використовується для призначення граматичної інформації кожного слова речення. Встановлення, імпорт та завантаження всіх пакетів позначення частини мови за допомогою NLTK завершено.
  • Накопичення в НЛП - це процес отримання невеликих фрагментів інформації та їх групування у великі одиниці.
  • Немає заздалегідь визначених правил, але ви можете комбінувати їх відповідно до потреб та вимог.
  • Чанкування використовується для виявлення сутності. Сутність - це та частина речення, за допомогою якої машина отримує значення для будь-якого наміру
  • Чанкування використовується для класифікації різних лексем в один і той же шматок.