НЛП | Чанкинг и изменение с помощью RegEx

Опубликовано: 25 Июля, 2021

Извлечение фрагментов или частичный синтаксический анализ - это процесс значимого извлечения коротких фраз из предложения (помеченных как Part-of-Speech).
Фрагменты состоят из слов, а типы слов определяются с помощью тегов части речи. Можно даже определить шаблон или слова, которые не могут быть частью chuck, и такие слова известны как chinks . ChunkRule class указывает, какие слова или шаблоны включать и исключать в блоке.

Определение паттернов чанка:
Шаблоны Chuck - это обычные регулярные выражения, которые изменяются и предназначены для соответствия тегу части речи, разработанному для соответствия последовательностям тегов части речи. Угловые скобки используются для указания индивидуального тега, например, для соответствия тегу существительного . Таким же образом можно определить несколько тегов.

Код №1: преобразование фрагментов в шаблон RegEx.




# Laading Library
from nltk.chunk.regexp import tag_pattern2re_pattern
# Chunk Pattern to RegEx Pattern
print ( "Chunk Pattern : " , tag_pattern2re_pattern( '<DT>?<NN.*>+' ))

Выход :

Шаблон фрагментов: ()? (<(NN [^  {}] *)>) +

Фигурные скобки используются для указания фрагмента, такого как {} а для указания шаблона фрагмента можно просто перевернуть фигурные скобки }{ . Для определенного типа фразы эти правила (фрагмент и образец фрагмента) могут быть объединены в грамматик.

Код №2: Разбор предложения с помощью RegExParser.




from nltk.chunk import RegexpParser
# Introducing the Pattern
chunker = RegexpParser(r '''
NP:
{<DT><NN.*><.*>*<NN.*>}
}<VB.*>{
''' )
chunker.parse([( 'the' , 'DT' ), ( 'book' , 'NN' ), (
'has' , 'VBZ' ), ( 'many' , 'JJ' ), ( 'chapters' , 'NNS' )])

Выход :

Tree ('S', [Tree ('NP', [('the', 'DT'), ('book', 'NN')]), ('has', 'VBZ'), 
Дерево ('NP', [('многие', 'JJ'), ('главы', 'NNS')])])

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.