Шановні читачі!
У цьому блозі я буду обговорювати блокування як теоретично, так і практично в Python.
Отже, почнемо…
ПРИМІТКА: Для реалізації краще використовувати Python IDLE, оскільки результатом є малюнок дерева, яке з’являється в окремому вікні.
щоденник
- Що таке чанкінг?
- Де використовується чанкінг?
- Види чанкінгу
- Реалізація фрагментації в Python
- результати
Що таке чанкінг?
Розбиття на фрагменти визначається як процес обробки природної мови, який використовується для визначення частин мови та коротких фраз, присутніх у даному реченні.
Згадуючи наші добрі старі уроки англійської граматики в школі, зауважте, що існує вісім частин мови, а саме іменник, дієслово, прикметник, прислівник, прийменник, сполучник, займенник і вставне слово. Крім того, у наведеному вище визначенні фрагментації короткі фрази стосуються фраз, утворених шляхом включення будь-якої з цих частин мови.
Наприклад, фрагментація може бути зроблена для ідентифікації та, таким чином, групування фраз іменників або окремо іменників, прикметників або фраз прикметників тощо. Розгляньте речення нижче:
«На сніданок я їв бургери та тістечка».
У цьому випадку, якщо ми хочемо згрупувати або розділити іменникові фрази, ми отримаємо «бургери», «кондитерські вироби» та «обід», які є іменниками або групами іменників речення.
Де використовується чанкінг?
Чому ми хочемо чогось навчитися, не знаючи, де це широко використовується?! Перегляд програм, які обговорюються в цьому розділі блогу, допоможе вам залишатися цікавими до кінця!
Частування використовується для отримання необхідних фраз із заданого речення. Однак тегування POS можна використовувати лише для визначення частин мови, до яких належить кожне слово речення.
Коли у нас є безліч описів або модифікацій навколо певного слова чи фрази, що нас цікавить, ми використовуємо фрагментацію, щоб захопити лише необхідну фразу, ігноруючи решту навколо неї. Таким чином, фрагментація прокладає шлях для групування необхідних фраз і виключення всіх модифікаторів навколо них, які не потрібні для нашого аналізу. Підводячи підсумок, можна сказати, що фрагментація допомагає нам витягувати лише важливі слова з довгих описів. Таким чином, фрагментація є етапом вилучення інформації.
Цікаво, що цей процес блокування в НЛП поширюється на різні інші програми; наприклад, згрупувати фрукти певної категорії, скажімо, фрукти, багаті білками, як групу, фрукти, багаті вітамінами, як іншу групу тощо. Крім того, фрагментація також може бути використана для групування схожих автомобілів, скажімо, автомобілі, які підтримують автоматичне перемикання передач, в одну групу, а інші, які підтримують ручне перемикання передач, в іншу частину тощо.
Типи чанкінга
Загалом існує два типи фрагментації:
- Подрібнення
- Знищення
Подрібнення:
Тут ми не занурюємося глибоко; замість цього ми задоволені лише оглядом інформації. Це лише допомагає нам отримати коротке уявлення про дані.
Зменшення:
На відміну від попереднього типу поділу, поділ допомагає отримати детальну інформацію.
Отже, якщо ви просто хочете зрозуміти, подумайте про «збільшення», інакше віддайте перевагу «зниження».
Реалізація фрагментації в Python
Уявіть ситуацію, в якій ви хочете витягти всі дієслова з поданого тексту для аналізу. Таким чином, у цьому випадку ми повинні враховувати поділ дієслівних фраз. Це пояснюється тим, що наша мета — витягти всі дієслівні фрази з заданого фрагмента тексту. Розбиття виконується за допомогою регулярних виразів.
Не хвилюйтеся, якщо ви вперше зустрінете термін «регулярні вирази». Нижче наведена таблиця, вам на допомогу:
|
|
|
|
|
|
|
|
|
|
|
|
Наведена вище таблиця містить найпоширеніші використовувані регулярні вирази. Регулярні вирази дуже корисні в командному рядку, особливо під час видалення, пошуку, перейменування або переміщення файлів.
У будь-якому разі, для цієї реалізації ми будемо використовувати лише *. Не соромтеся дивитися на наведену вище таблицю, щоб ознайомитися з символом!
Ми будемо виконувати фрагментацію за допомогою nltk, найпопулярнішої бібліотеки NLP. Отже, давайте спочатку імпортуємо його.
імпортувати nltk
Давайте розглянемо наведений нижче зразок тексту, який я створив самостійно. Не соромтеся замінити наведений нижче зразок тексту, який вам подобається, щоб застосувати фрагментацію!
sample_text=""" Рама вбив Равану, щоб врятувати Сіту від Ланки. Легенда про Рамаян – найпопулярніший індійський епос. Знято вже багато фільмів і серіалів знято кількома мовами тут, в Індії, на основі Рамаяни. """
Зрозуміло, що перед тим, як ми продовжимо, дані мають бути лексемизовані реченням, а потім словом. Токенізація — це не що інше, як процес поділу даного фрагмента тексту на менші одиниці, такі як речення, у випадку токенізації речень, і слова, у випадку токенізації слів.
Після токенізації для кожного слова виконується тегування POS (частина мови), у якому буде визначено частину мови кожного слова. Тепер нас цікавить лише дієслово-частина мови, і ми хочемо виділити його.
Отже, вкажіть частину мови, яка нас цікавить, використовуючи необхідний регулярний вираз наступним чином:
VB: {}
tokenized=nltk.sent_tokenize(зразок_тексту) for i in tokenized: words=nltk.word_tokenize(i) # print(words) tagged_words=nltk.pos_tag(words) # print(tagged_words) chunkGram=r"""VB: {}""" chunkParser=nltk.RegexpParser( chunkGram) chunked=chunkParser.parse(tagged_words) chunked.draw()
Регулярний вираз (RE) укладено в кутові дужки (), які, у свою чергу, укладено у фігурні дужки ({ і }).
ПРИМІТКА: Вкажіть RE відповідно до необхідного POS
VB означає дієслово POS. Крапка після VB означає відповідність будь-якому символу після VB. Знак питання після крапки означає, що будь-який символ після B має зустрічатися лише один раз або не повинен зустрічатися взагалі. Однак з таблиці, яку ми бачили раніше, цей символ необов’язковий. Ми оформили регулярний вираз таким чином, оскільки в NLTK дієслівні фрази містять такі теги POS:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таким чином, дієслівні словосполучення можуть належати до будь-якого з перерахованих вище ПОС. Ось чому регулярний вираз оформлено як VB.? який включає всі вищезазначені категорії. Пакет RegexpParser використовується для перевірки того, чи POS задовольняє необхідний шаблон, про який ми згадували раніше, використовуючи RE.
Весь код можна побачити так:
імпорт nltk nltk.download('averaged_perceptron_tagger') sample_text=""" Рама вбив Равану, щоб врятувати Сіту від Ланки. Легенда про Рамаян – найпопулярніший індійський епос. Знято вже багато фільмів і серіалів знято кількома мовами тут, в Індії, на основі Рамаяни. """ tokenized=nltk.sent_tokenize(зразок_тексту) for i in tokenized: words=nltk.word_tokenize(i) # print(words) tagged_words=nltk.pos_tag(words) # print(tagged_words) chunkGram=r"""VB: {}""" chunkParser=nltk.RegexpParser( chunkGram) chunked=chunkParser.parse(tagged_words) chunked.draw()
результати
Нарешті, ми отримуємо деревоподібну форму POS слів разом зі словами, POS яких відповідає даному RE. Знімок результату, отриманого для переданого нами зразка тексту, можна побачити на наведених вище малюнках.
Зверніть увагу, що слова, які задовольняють наші вимоги RE лише для дієслівних фраз, чітко виділені у вихідних даних. Отже, розділення дієслівних фраз було виконано успішно.
Сподіваюся, моя стаття була для вас корисною.
Спасибо!
посилання
1. Реалізація фрагментації в Python
3. Повний список POS, доступних у NLP
Про мене
Я Нітіашрі В, студент останнього курсу BTech Computer Science and Engineering. Мені подобається вивчати такі класні технології та застосовувати їх на практиці, особливо спостерігаючи, як вони допомагають нам вирішувати складні проблеми суспільства. Сфери моїх інтересів включають штучний інтелект, науку про дані та обробку природної мови.
Ось мій профіль LinkedIn: Мій LinkedIn
Ви можете прочитати мої інші статті про Analytics Vidhya тут.
- "
- 7
- ВСІ
- аналіз
- аналітика
- застосування
- навколо
- стаття
- статті
- штучний інтелект
- Блог
- сніданок
- автомобілів
- код
- майбутній
- загальний
- Інформатика
- дані
- наука про дані
- Машинобудування
- англійська
- видобуток
- Перший
- перший раз
- форма
- Безкоштовна
- Передача
- добре
- захоплення
- Граматика
- Group
- тут
- Виділено
- Як
- HTTPS
- ідея
- ідентифікувати
- У тому числі
- Індію
- інформація
- вилучення інформації
- Інтелект
- інтерес
- IT
- мова
- мови
- УЧИТЬСЯ
- вивчення
- бібліотека
- Лінія
- список
- любов
- позначити
- матч
- Медіа
- Найбільш популярний
- кіно
- а саме
- Природна мова
- Обробка природних мов
- nlp
- Інше
- інші
- Викрійки
- фрази
- популярний
- PoS
- представити
- профіль
- Python
- RE
- читачі
- REST
- Школа
- наука
- Короткий
- Знімок
- So
- ВИРІШИТИ
- Spot
- залишатися
- студент
- підтримка
- Технології
- час
- Токенізація
- us
- Що таке
- в
- слова
- рік
- нуль