На пример, предузеће може покренути механизам за анализу текста који обрађује твитове о свом послу помињући име компаније, локацију, процес и анализирајући емоције повезане са тим твитом. Исправне радње могу се предузети брже ако то предузеће сазна за растуће негативне твеетове за њега на одређеној локацији како би се спасило од грешке или било чега другог. Још један уобичајени пример ће за ЈуТјуб. Иоутубе администратори и модератори се упознају са ефектом видео записа, у зависности од врсте коментара на видео запис или порука видео ћаскања. То ће им помоћи да много брже пронађу неприкладан садржај на веб локацији, јер су сада искорениле ручни рад и запослиле аутоматизоване ботове за паметну анализу текста.
У овој лекцији ћемо проучити неке концепте који се односе на анализу текста уз помоћ НЛТК библиотеке у Питхону. Неки од ових концепата ће укључивати:
- Токенизација, како разбити део текста на речи, реченице
- Избегавање зауставних речи заснованих на енглеском језику
- Извођење стемминга и лематизације на делу текста
- Утврђивање жетона који ће се анализирати
НЛП ће бити главна област фокуса у овој лекцији, јер је применљив на огромне реалне сценарије где може да реши велике и кључне проблеме. Ако мислите да ово звучи сложено, добро јесте, али концепте је једнако лако разумети ако испробате примере раме уз раме. Кренимо у инсталирање НЛТК на вашу машину да започнемо с њом.
Инсталирање НЛТК
Само напомену пре почетка, за ову лекцију можете користити виртуелно окружење које можемо направити следећом командом:
питхон -м виртуаленв нлткизвор нлтк / бин / активирај
Једном када је виртуелно окружење активно, можете инсталирати НЛТК библиотеку у виртуелно окружење тако да се могу извршити примери које следећи креирамо:
пип инсталл нлткУ овој лекцији ћемо користити Анаконду и Јупитер. Ако га желите инсталирати на машину, погледајте лекцију која описује „Како инсталирати Анацонда Питхон на Убунту 18.04 ЛТС “и поделите своје повратне информације ако се суочите са било којим проблемом. Да бисте инсталирали НЛТК са Анацондом, користите следећу команду у терминалу из Анацонде:
цонда инсталл -ц анацонда нлткНешто слично видимо када извршимо горњу команду:
Једном када су сви потребни пакети инсталирани и готови, можемо започети употребу НЛТК библиотеке са следећом изјавом о увозу:
импорт нлткКренимо са основним примерима НЛТК сада када смо инсталирали пакете са предусловима.
Токенизација
Започећемо са токенизацијом која је први корак у извођењу анализе текста. Токен може бити било који мањи део текста који се може анализирати. Постоје две врсте токенизације које се могу изводити са НЛТК:
- Токенизација реченице
- Токенизација речи
Можете погодити шта се дешава на свакој од токенизација, па заронимо у примере кода.
Токенизација реченице
Како назив одражава, токенизатори реченица дели текст у реченице. Покушајмо са једноставним исечком кода за исти где користимо текст који смо изабрали из водича за Апацхе Кафка. Обавићемо неопходни увоз
импорт нлткод нлтк.токенизе импорт сент_токенизе
Имајте на уму да бисте се могли суочити са грешком због недостајуће зависности за позвани нлтк пункт. Додајте следећи ред одмах након увоза у програм да бисте избегли упозорења:
нлтк.преузимање ('пункт')За мене је дао следећи резултат:
Даље, користимо токенизер реченица који смо увезли:
тект = "" "Тема на Кафки је нешто где се шаље порука. Потрошачапликације које занима та тема увлаче поруку у то
тему и може учинити било шта са тим подацима. До одређеног времена, било који број
потрошачке апликације могу повући ову поруку било који број пута."" "
реченице = послат_токенизе (текст)
штампати (реченице)
Нешто слично видимо када извршимо горњу скрипту:
Очекивано, текст је био правилно организован у реченице.
Токенизација речи
Како назив одражава, Ворд Токенизерс дели текст на речи. Покушајмо са једноставним исечком кода за исти са истим текстом као у претходном примеру:
од нлтк.токенизе увоз ворд_токенизевордс = ворд_токенизе (текст)
испис (речи)
Нешто слично видимо када извршимо горњу скрипту:
Као што се и очекивало, текст је правилно организован у речи.
Дистрибуција фреквенције
Сад кад смо преломили текст, такође можемо израчунати учесталост сваке речи у тексту који смо користили. Са НЛТК је врло једноставно, ево исечка кода који користимо:
од нлтк.вероватноћа увоза ФрекДистдистрибуција = ФрекДист (речи)
штампа (дистрибуција)
Нешто слично видимо када извршимо горњу скрипту:
Даље, у тексту можемо пронаћи најчешће речи са једноставном функцијом која прихвата број речи за приказ:
# Најчешће речидистрибуција.мост_цоммон (2)
Нешто слично видимо када извршимо горњу скрипту:
На крају, можемо направити графикон расподеле фреквенција како бисмо рашчистили речи и њихов број у датом тексту и јасно разумели дистрибуцију речи:
Стопвордс
Баш као кад разговарамо са другом особом путем позива, током позива обично се чује нека бука која је нежељена информација. На исти начин, текст из стварног света такође садржи буку која се назива као Стопвордс. Лозинке се могу разликовати од језика до језика, али их је лако препознати. Неке од зауставних речи на енглеском језику могу бити - јесу, јесу, су, су, итд.
Речи које НЛТК сматра енглеским језиком као зауставне речи можемо погледати са следећим исечком кода:
од нлтк.граничне речи за увоз корпусанлтк.преузимање ('стопвордс')
језик = "енглески"
стоп_вордс = сет (стопвордс.речи (језик))
испис (стоп_вордс)
Како скуп зауставних речи наравно може бити велик, чува се као засебан скуп података који се може преузети са НЛТК, као што смо горе приказали. Нешто слично видимо када извршимо горњу скрипту:
Ове зауставне речи треба уклонити из текста ако желите да извршите прецизну анализу текста за дати део текста. Уклонимо зауставне речи из наших текстуалних токена:
филтеред_вордс = []за реч у речима:
ако реч није у стоп_вордс:
филтеред_вордс.додати (реч)
филтеред_вордс
Нешто слично видимо када извршимо горњу скрипту:
Ворд Стемминг
Основа речи је основа те речи. На пример:
Изводићемо темеље на филтрираним речима из којих смо уклонили зауставне речи у последњем одељку. Напишимо једноставан исечак кода где користимо НЛТК-ов матични број за извођење операције:
од нлтк.матични увоз ПортерСтеммерпс = ПортерСтеммер ()
стеммед_вордс = []
за реч у филтеред_вордс:
стеммед_вордс.додати (пс.стабљика (реч))
принт ("Темељна реченица:", матичне_речи)
Нешто слично видимо када извршимо горњу скрипту:
ПОС таговање
Следећи корак у текстуалној анализи је идентификација и груписање сваке речи у смислу њихове вредности, тј.е. ако је свака од речи именица или глагол или нешто друго. Ово се назива делом означавања говора. Изведимо ПОС означавање сада:
жетони = нлтк.ворд_токенизе (реченице [0])штампа (жетони)
Нешто слично видимо када извршимо горњу скрипту:
Сада можемо извршити означавање, за шта ћемо морати да преузмемо други скуп података да бисмо идентификовали тачне ознаке:
нлтк.преузимање ('просечан_перцептрон_таггер')нлтк.пос_таг (токени)
Ево резултата означавања:
Сад кад смо коначно идентификовали означене речи, ово је скуп података на којем можемо извршити анализу сентимента како бисмо идентификовали емоције иза реченице.
Закључак
У овој лекцији смо погледали одличан пакет природног језика, НЛТК који нам омогућава да радимо са неструктурираним текстуалним подацима како бисмо идентификовали било које зауставне речи и извршили дубљу анализу припремајући оштар скуп података за анализу текста са библиотекама попут склеарн.
Пронађите све изворне кодове коришћене у овој лекцији на Гитхуб-у. Молимо поделите повратне информације о лекцији на Твиттеру са @сбмаггарвал и @ЛинукХинт.