Справочник от Автор24
Поделись лекцией за скидку на Автор24

Использование паттернов последовательностей слов для классификации и генерации текста

  • 👀 396 просмотров
  • 📌 371 загрузка
Выбери формат для чтения
Загружаем конспект в формате docx
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Использование паттернов последовательностей слов для классификации и генерации текста» docx
Поиск паттернов Для категоризации текста, выделения из него определенных фраз или вычисления семантического подобия другому тексту приложению необходимо «понимать» высказывания пользователей и генерировать осмысленные ответы на них. В этой лекции мы рассмотрим использование паттернов (закономерностей) последовательностей слов для классификации и генерации текста. Паттерны последовательностей слов Паттерн последовательности слов (word sequence pattern) состоит из признаков слов, накладывающих на каждое слово последовательности определенные требования. Например, фраза I can соответствует следующему паттерну последовательности слов: «местоимение + вспомогательный модальный глагол». Нахождение паттернов последовательностей слов позволяет распознавать последовательности слов со схожими языковыми признаками, а значит, и распределять входные данные по категориям и должным образом их обрабатывать Например, при получении вопроса, начинающегося с последовательности слов, которая соответствует паттерну «вспомогательный модальный глагол + имя собственное» (как фраза Can George), ясно, что он относится либо к способности, возможности или разрешению что-то сделать, либо к обязанности, налагаемой на кого-то или что-то, описываемое именем собственным. В следующих разделах вы научитесь классифицировать предложения с помощью распознавания распространенных закономерностей линг­вистических признаков. Поиск паттернов лингвистических признаков Поиск паттернов в текстах необходим по той причине, что в большин­стве случаев в тексте не бывает двух совершенно одинаковых предложений: обычно текст состоит из разных предложений, содержащих разные слова. Писать отдельный код для обработки каждого предложения текста нерационально. К счастью, некоторые выглядящие совершенно разными предложения имеют одинаковые паттерны последовательности слов. Возьмем, к примеру, такие два предложения: We can overtake them. You must specify it. У них нет ни одного общего слова. Но, если взглянуть на метки синтаксической зависимости слов этих предложений, станет ясна общая закономерность, как показано в следующем сценарии: doc1 = nlp(u'We can overtake them.') doc2 = nlp(u'You must specify it.') for i in range(len(doc1)-1): if doc1[i].dep_ == doc2[i].dep_: print(doc1[i].text, doc2[i].text, doc1[i].dep_, spacy.explain(doc1[i].dep_)) Поскольку число слов в предложениях одинаково, можно пройти по словам обоих предложений в одном цикле. Если метка зависимости одинакова для слов с идентичными индексами, то выводим эти слова, присвоенную им метку и ее описание. В результате должно быть выведено: We You nsubj nominal subject can must aux auxiliary overtake specify ROOT None them it dobj direct object Как видите, список меток зависимости одинаков для обоих предло­жений. Это значит, что предложения строятся по одному паттерну последовательности слов, который описывается метками синтаксической зависимости таким образом: «подлежащее + вспомогательный глагол + глагол + прямое дополнение». Обратите внимание, что списки тегов частей речи (общих и уточнен­ных) для этих примеров предложений также совпадают. Если заменить все ссылки на атрибуты .dep_ на .pos_ в предыдущем сценарии, получим следующие результаты: We You PRON pronoun can must VERB verb overtake specify VERB verb them it PRON pronoun Эти предложения соответствуют не только паттерну меток синтакси­ческой зависимости, но и паттерну тегов частей речи. Попробуйте сами В предыдущем примере мы создали два объекта Doc — по одному для каждого примера предложения. На практике же текст обычно состоит из множества предложений, вследствие чего создавать объект Doc для каждого предложения нерационально. Перепишите сценарий таким образом, чтобы создавался один общий объект Doc. Затем воспользуйтесь свойством doc.sents, с которым вы познакомились ранее, для манипуляций с обоими предложениями. Впрочем, учтите, что doc.sents — объект-генератор — не индексируется и, значит, к его элементам нельзя обращаться по индексам. Для решения этой проблемы преобразуйте doc.sents в список: sents = list(doc.sents) И конечно, для получения sents в требуемом для нашего цикла порядке можно пройти по doc.sents в цикле for.
«Использование паттернов последовательностей слов для классификации и генерации текста» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ
Получи помощь с рефератом от ИИ-шки
ИИ ответит за 2 минуты

Тебе могут подойти лекции

Смотреть все 462 лекции
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot