POS-теги
Части речевого тега отвечает за чтение текста на каком-либо языке и присваивает некоторый определенный токен (части речи) каждому слову.
например
Вход: все, что позволяет нам.
Вывод: [(‘Все’, NN), (‘to’, TO), (‘allow’, VB), (‘us’, PRP)]
Включенные шаги:
- Токенизировать текст (word_tokenize)
- применить pos_tag к шагу выше, который является nltk.pos_tag (tokenize_text)
Некоторые примеры приведены ниже:
Сокращение | Смысл |
CC | координационное соединение |
компакт диск | кардинальная цифра |
DT | детерминанта |
EX | экзистенциальный там |
FW | иностранное слово |
В | предлог / подчиняющее соединение |
JJ | прилагательное (большое) |
JJR | прилагательное, сравнительное (больше) |
JJS | прилагательное, превосходный (самый большой) |
LS | список рынка |
Мэриленд | модальный (может, будет) |
Н.Н. | существительное в единственном числе (кошка, дерево) |
NNS | существительное во множественном числе (парт) |
ННП | имя собственное, исключительное (sarah) |
NNPS | имя собственное, множественное число (индусы или американцы) |
Тихоокеанское летнее время | предопределитель (все, оба, половина) |
POS | притяжательное окончание (родительский) |
PRP | личное местоимение (ее, его самого, его самого) |
PRP $ | притяжательное местоимение (она, его, мое, мое, наше) |
RB | наречие (иногда, быстро) |
RBR | наречие, сравнительное (больше) |
RBS | наречие, превосходный (самый большой) |
RP | частица (о) |
К | бесконечный маркер (до) |
UH | междометие (до свидания) |
VB | глагол (спросить) |
VBG | глагол герунд (судя) |
ВБД | глагол прошедшего времени (умолял) |
VBN | глагол прошедшего причастия (воссоединенный) |
ВБП | глагол, настоящее время не 3-го лица единственного числа (перенос) |
VBZ | глагол, настоящее время с 3-го лица единственного числа (основы) |
WDT | wh-определитель (что, что) |
WP | белое местоимение (кто) |
WRB | белое наречие (как) |
POS-тег используется для назначения грамматической информации о каждом слове предложения. Установка, импорт и загрузка всех пакетов NLTK завершены.
лязг
Разделение на части используется, чтобы добавить больше структуры к предложению, следуя меткам речи (POS). Это также известно как мелкий разбор. Получившаяся группа слов называется « чанки ». При мелком разборе существует максимум один уровень между корнями и листьями, в то время как глубокий разбор включает более одного уровня. Неглубокий разбор также называется легким разбором или разбиением на части.
Основное использование чанкинга состоит в создании группы «именных фраз». Части речи сочетаются с регулярными выражениями.
Правила для чанкинга:
Нет заранее определенных правил, но вы можете комбинировать их в соответствии с потребностями и требованиями.
Например, вам нужно пометить существительное, глагол (прошедшее время), прилагательное и координирующее соединение из предложения. Вы можете использовать правило, как показано ниже
Кусок: {<?.? NN> * <.? ВБД> * <.? JJ> * <CC>}
Следующая таблица показывает, что означает этот символ:
Название символа | Описание |
, | Любой символ кроме новой строки |
* | Совпадение 0 или более повторений |
? | Совпадение 0 или 1 повторений |
Теперь давайте напишем код, чтобы лучше понять правила
from nltk import pos_tag from nltk import RegexpParser text ="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:{<NN.?>*<VBD.?>*<JJ.?>*<CC>?}""" 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: <ChunkRule: '<NN.?>*<VBD.?>*<JJ.?>*<CC>?'> After Chunking (S (mychunk learn/JJ) (mychunk php/NN) from/IN (mychunk guru99/NN and/CC) make/VB (mychunk study/NN easy/JJ))
Вывод из приведенного выше примера: «make» — это глагол, который не включен в правило, поэтому он не помечен как mychunk
Вариант использования Chunking
Разделение на части используется для обнаружения объекта. Сущность — это та часть предложения, с помощью которой машина получает значение для любого намерения.
Example: Temperature of New York. Here Temperature is the intention and New York is an entity.
Другими словами, чанкинг используется как выбор подмножеств токенов. Пожалуйста, следуйте приведенному ниже коду, чтобы понять, как чанкинг используется для выбора токенов. В этом примере вы увидите график, который будет соответствовать фрагменту существительной фразы. Мы напишем код и нарисуем график для лучшего понимания.
Код для демонстрации варианта использования
import nltk text = "learn php from guru99" tokens = nltk.word_tokenize(text) print(tokens) tag = nltk.pos_tag(tokens) print(tag) grammar = "NP: {<DT>?<JJ>*<NN>}" 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» не принадлежит фразе существительного.
Чанкинг используется для классификации разных токенов в один и тот же чанк. Результат будет зависеть от выбранной грамматики. Дальнейшее чанкинг используется для маркировки шаблонов и изучения текстовых корпусов.