Класификација и предвиђање текста коришћењем приступа Баг Оф Вордс

Постоји низ приступа класификацији текста. У другим чланцима обрађивао сам мултиномне наивне Баиес-ове и неуронске мреже.

Један од најједноставнијих и најчешћих приступа назива се „Торба речи“. Користили су га комерцијални аналитички производи, укључујући Цларабридге, Радиан6 и друге.

Приступ је релативно једноставан: с обзиром на скуп тема и скуп термина повезаних са сваком темом, одредите које теме постоје у документу (на пример, реченица).

Док други, егзотичнији алгоритми такође организују речи у „вреће“, ми у овој техници не стварамо модел или примењујемо математику на начин на који се ова „врећа“ пресеца са класификованим документом. Класификација документа биће полиморфна, јер може бити повезана са више тема.

Чини ли се ово превише једноставно да би било корисно? Покушајте пре него што донесете закључак. У НЛП-у је често случај да једноставан приступ понекад може много да помогне.

Требаће нам три ствари:

  • Датотека за дефинисање тема / речи
  • Функција класификатора
  • Бележница за тестирање нашег класификатора

А онда ћемо кренути мало даље и изградити и тестирати предиктивни модел користећи наше податке о класификацији.

Теме и речи

Наша датотека дефиниција је у ЈСОН формату. Користићемо је за класификацију порука између пацијената и медицинске сестре додељене њиховој нези.

топицс.јсон

У овој дефиницији постоје две напомене.

Прво, погледајмо неке појмове неке појмове. На пример, „бруис“ је стабљика. Обухватаће суперсетове као што су „модрица“, „модрица“ итд. Друго, изрази који садрже * заправо су обрасци , на пример * дпм је образац за нумерички д игит иза којег следи „пм“.

Да би ствари биле једноставне, бавимо се само нумеричким подударањем образаца, али ово би могло да се прошири на шири опсег.

Ова способност проналажења образаца унутар појма врло је корисна за класификовање докумената који садрже датуме, времена, новчане вредности итд.

Испробајмо неку класификацију.

Класификатор враћа ЈСОН скуп резултата који садржи реченице повезане са сваком темом пронађеном у поруци. Порука може садржати више реченица, а реченица може бити повезана са ниједном, једном или више тема.

Погледајмо наш класификатор. Код је овде.

мсгЦлассифи.пи

Код је релативно једноставан и укључује функцију погодности за поделу документа на реченице.

Предиктивно моделирање

Збирна класификација за скуп докумената повезаних с исходом може се користити за изградњу предиктивног модела.

У овом случају употребе, желели смо да видимо можемо ли предвидети хоспитализације на основу порука између пацијента и медицинске сестре пре инцидента. Упоређивали смо поруке за пацијенте који јесу и нису били хоспитализовани.

Сличну технику можете користити за друге врсте размене порука повезане са неким бинарним исходом.

Овај поступак предузима неколико корака:

  • Скуп порука је класификован и свака тема добија број за овај скуп. Резултат је фиксна листа тема са% алокацијом из порука.
  • Алокацији теме се тада додељује бинарна вредност , у нашем случају 0 ако није било хоспитализације и 1 ако је била хоспитализација
  • Логистичка регресија алгоритам се користи за изградњу интуитивни модел
  • Модел се користи за предвиђање исхода из новог уноса

Погледајмо наше улазне податке. Ваши подаци би требали имати сличну структуру. Користимо панде ДатаФраме.

„Инцидент“ је бинарни исход и то мора бити прва колона у улазним подацима.

Свака следећа колона је тема и% класификације из скупа порука које припадају пацијенту.

У ретку 0 видимо да се отприлике четвртина порука овог пацијента односи на тему захвалности , а ниједна се не односи на медицинске термине или новац . Стога је сваки ред бинарни исход и профил класификације порука за теме.

Улазни подаци ће имати различите теме, различите ознаке колона и различито бинарно стање, али у супротном биће сличне структуре.

Користимо сцикит-леарн за изградњу логистичке регресије и тестирање нашег модела.

Ево наших резултата:

precision recall f1-score support 0 0.66 0.69 0.67 191 1 0.69 0.67 0.68 202avg / total 0.68 0.68 0.68 393

Прецизност и опозив овог модела у односу на податке о тестовима су у високим 60-има - нешто бољи од нагађања и недовољно тачни да би имао велику вредност, на жалост.

У овом примеру количина података била је релативно мала (хиљаду пацијената, ~ 30 узорака по пацијенту). Имајте на уму да се само половина података може користити за тренинг, док се друга половина (након мешања) користи за тестирање.

Укључивањем структурираних података попут старости, пола, стања, прошлих инцидената и тако даље, могли бисмо ојачати свој модел и произвести јачи сигнал. Имати више података такође би било корисно, јер је број колона података о обуци прилично велик.

Испробајте ово са својим структурираним / неструктурираним подацима и погледајте да ли можете да добијете високопредвидљиви модел. Можда нећете добити прецизност која доводи до аутоматизованих радњи, али вероватноћа „ризика“ може се користити као филтер или функција сортирања или као знак раног упозорења за људске стручњаке.

Приступ „Торбе речи“ погодан је за одређене врсте класификације текста, посебно тамо где језик није нијансиран.

Уживати.