POS-теги с помощью NLTK и фрагменты в NLP (ПРИМЕРЫ)

Содержание:

Anonim

POS-теги

POS-теги ( теги частей речи) - это процесс разметки слов в текстовом формате для определенной части речи на основе ее определения и контекста. Он отвечает за чтение текста на языке и присвоение определенного токена (частей речи) каждому слову. Это также называется грамматической разметкой.

Давайте учимся на примере части речи NLTK:

Сырьё: Всё, что нам позволяет.

Вывод : [('Все', NN), ('в', TO), ('разрешение', VB), ('нас', PRP)]

Шаги, включенные в пример тегов POS:

  • Токенизировать текст (word_tokenize)
  • примените pos_tag к шагу выше, который равен nltk.pos_tag (tokenize_text)

Примеры POS-тегов NLTK приведены ниже:

Сокращение Смысл
CC координационное соединение
CD кардинальная цифра
DT определитель
БЫВШИЙ экзистенциальный там
FW иностранное слово
В предлог / подчинительный союз
JJ Этот POS-тег NLTK является прилагательным (большой)
JJR прилагательное, сравнительный (крупнее)
JJS прилагательное, превосходная степень (наибольший)
LS список рынка
Доктор медицины модальный (может, будет)
NN существительное, единственное число (кошка, дерево)
NNS существительное множественное число (столы)
NNP имя собственное, единственное число (сара)
NNPS существительное собственное, множественное число (индейцы или американцы)
Тихоокеанское летнее время предопределитель (все, оба, половина)
POS притяжательное окончание (родительские)
PRP личное местоимение (ее, сама, он, сам)
PRP $ притяжательное местоимение (ее, его, мое, мое, наше)
РБ наречие (изредка, быстро)
RBR наречие, сравнительный (большее)
RBS наречие, превосходная степень (самый большой)
RP частица (о)
К бесконечный маркер (до)
ЭМ-М-М междометие (до свидания)
VB глагол (спрашивать)
VBG глагол герундий (судить)
VBD глагол прошедшего времени (умолял)
VBN глагол причастие прошедшего времени (воссоединенный)
VBP глагол, настоящее время, а не 3-е лицо единственного числа (перенос)
ВБЗ глагол, настоящее время с 3-м лицом единственного числа (основания)
WDT wh-определитель (что, что)
WP wh- местоимение (кто)
WRB wh- наречие (как)

Приведенный выше список POS-тегов NLTK содержит все POS-теги NLTK. NLTK POS tagger используется для присвоения грамматической информации каждому слову предложения. Установка, импорт и загрузка всех пакетов 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 tagger используется для присвоения грамматической информации каждому слову предложения. Установка, импорт и загрузка всех пакетов тегирования части речи с помощью NLTK завершены.
  • Разделение на части в НЛП - это процесс, позволяющий собрать небольшие фрагменты информации и сгруппировать их в большие блоки.
  • Предварительно определенных правил нет, но вы можете комбинировать их в соответствии с потребностями и требованиями.
  • Разделение на части используется для обнаружения сущностей. Сущность - это та часть предложения, с помощью которой машина получает значение для любого намерения.
  • Разделение на части используется для разделения разных токенов на один и тот же фрагмент.