Како претражити уградње за најближе подударање

Kako Pretraziti Ugradne Za Najblize Podudarane



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

Синтакса

Постоји много техника и алата које можемо користити да пронађемо разлику између уграђивања на основу њихове разлике у смислу сличности. Следе методе и њихова укључена синтакса које ћемо користити за проналажење сличности уградње.







Из наведених тачака знамо моделе које можемо користити да пронађемо подударање сличности за уградње. Сада ћемо научити да користимо сваки од ових модела и применимо појединачне примере на сваком од ових модела.



Пример 1: Уграђивање најближег подударања кроз уграђивање речи

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



Постоји неколико других начина за обављање овог задатка који укључују једнократно кодирање, али ми ћемо користити уграђивање речи. На овај начин, уграђивање се учи помоћу модела неуронске мреже (нпр. ворд2вец или Глове) из текстова. Речи се мапирају у векторски простор више димензије. Све оне речи које су сличне у контексту су мапиране до најближих тачака. На овај начин, уграђивање може да ухвати односе и аналогије између различитих речи у тексту.





Хајде да направимо уградњу речи за реченицу. Да би креирао уграђивање речи, Питхон обезбеђује оквир „генсим“. Генсим је библиотечки пакет који дозвољава употребу модела „ворд2вец“ који помаже у креирању уградњи. Да бисмо имплементирали уграђивање, прво се побринемо да инсталирамо генсим на нашим Питхон компајлерима. Затим, из генсима, увозимо модел „ворд2вец“.

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



Након увоза модела „ворд2вец“, наводимо „текст“. Када наведемо текст, онда тренирамо овај модел „ворд2вец“ тако што ћемо га прослеђивати са текстом и постављати минимални број једнак „1“. Сада, зовемо овај обучени модел „ворд2вец.вв.мост_симилар(‘цонсуме’)” и хранимо реч чије најближе уградње желимо да проверимо у којој је у овом примеру „цонсуме”. Да бисмо проверили резултате уграђивања, штампамо излаз из модела:

из као нација модели увоз Ворд2Вец
текст = [ [ 'зец' , 'има' , 'зуби' ] ]
модел = Ворд2Вец ( текст , мин_цоунт = 1 )
слично_уграђивање = модел. вв . највише_слично ( 'зец' )
принт ( слично_уграђивање )

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

Пример 2: Уграђивање најближе претраге кроз БЕРТ модел

Постоје унапред обучени модели обраде природног језика који се могу користити за израчунавање сличности између текстова јер могу разумети и научити контекстуални однос између речи. БЕРТ је један од унапред обучених језичких модела из „сентенце_трансформерс” и може научити сличности између текстова. Да бисмо пронашли сличност између текстова, прво морамо да фино прилагодимо овај модел тексту или реченицама.

Када се то уради, можемо користити овај модел да научимо уградње. Затим можемо израчунати сличност између текстова помоћу функције „косинусне сличности“. Овај пример имплементирамо на онлајн Питхон платформи која је „гоогле цолаб“. Да бисмо фино подесили модел, учитавамо (БЕРТ) модел. У ту сврху прво инсталирамо и увозимо „СентенцеТрансформерс“. Затим учитавамо модел из претходно обученог модела користећи СентенцеТрансформер. Да бисмо учитали модел, зовемо СентенцеТрансформер и БЕРТ модел у потпуности као „$СентенцеТрансформер('берт-басе-нли-меан-токенс')“ где наводимо име унапред обученог модела БЕРТ-а у улазном параметру и онда ово чувамо у променљивој „БЕРТмодел“.

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

Функцију кодирања са префиксом БЕРТ модела називамо „БЕРТмодел.енцодинг ()“. Затим проследимо „текст“ и „максималну дужину“ за које смо фиксирали да буду једнаки „512“ параметрима ове функције. Ми зовемо ову функцију кодирања за сваки од текстова, и она претвара текст у уграђивање.

Сада користимо свако од ових уграђивања и замењујемо их у функцију косинусне сличности да бисмо пронашли сличност између ових уградњи. Функција косинусне сличности се широко користи у свим задацима обраде природног језика за класификацију и груписање текстова/докумената.

Да бисмо пронашли сличност између ових уградњи, користимо функцију косинусне сличности и заменимо вредност уграђене реченице индексом „0“, а другу уграђену реченицу индексом „1 до 3“ да бисмо проверили сличност реченице 0 са осталих 3 реченице. Излазне вредности косинусне функције сличности су у распону од -1 до 1. Овде 1 говори да су два уграђивања слична, а -1 говори да два уграђивања нису слична. Приложили смо исечак кода који показује метод за имплементацију функције косинусне сличности користећи уграђивање четири реченице које смо управо креирали у примерима користећи унапред обучени БЕРТ модел.

!пип инсталл реченица_трансформерс
реченице = [
'четири године раније, флаша је била чак пуна и .',
'Пас је сањао како бежи из кавеза и на улици где је видела да јој другарица иде.'
„Особа се играла са медузама много месеца.“,
'Пронашао је пужа у својој гардероби.']
из сентенце_трансформерс импорт СентенцеТрансформер
Бертмодел = СентенцеТрансформер('берт-басе-нли-меан-токенс')
реченица_ембеддингс = Бертмодел.енцоде(реченице)
реченица_ембеддингс.облик
из склеарн.метрицс.паирвисе импорт цосине_симиларити
# израчунај косинус сличност за реченицу 0:
косинус_сличност(
[сентенце_ембеддингс[0]],
реченица_ембеддингс[1:])

Низ у излазу приказује вредност сличности „реченице 0“ са остале три реченице, нпр. 1, 2 и 3.

Закључак

Разговарали смо о методама за проналажење сличности између уградњи. Показали смо два различита примера за тражење најближег подударања за уградњу користећи генсим модел „ворд2вец“ и унапред обучени БЕРТ модел.