Ако не сте запознати с моята поредица „Изследване на НЛП“, моля, вижте моята уводна статия „тук“.



Ето няколко концепции, през които преминах през седмицата, особено относно вграждането на думи. Направих някои практически упражнения, които скоро ще споделя като част от поредицата! Бих искал да благодаря на господин Сачин Кумар С от CEN, Амрита Коимбаторе, че взе този курс за мен този семестър и част от информацията и изображенията, събрани тук, са от ресурсите и материалите, предоставени или създадени от него.

N-грамове:

N — gram е най-простият езиков модел, който присвоява вероятности на изречение или последователност от токени. (Моделите, които приписват вероятностна стойност на последователността от токени, се наричат ​​езикови модели)

Една n-грама е последователност от n-токени. Интуицията зад n-gram е, че вместо да изчислявате вероятността за дума, дадена цялата история, приближете историята с помощта на няколко думи. Предположението, че вероятността за следващата дума зависи само от предишната дума, е известно като предположението на Марков. N-gram моделите разглеждат n-1 думи в миналото, за да предскажат вероятността за дума.

Вграждане на думи:

Трансформацията от дума в нейното n-измерно векторно представяне (на думи, които носят семантично значение) за по-нататъшни NLP задачи се нарича вграждане на думи. Пример: Word2Vec

В английския езиков корпус има повече от 10 милиона токена. Вграждането на думи кодира всяка дума във вектор, който ще стане точка във векторното пространство на думата

Интуицията е, че такова векторно пространство на думи ще кодира цялата семантика на езика или думи, които имат подобен контекст, ще бъдат картографирани към близки точки във векторно пространство.

Едно горещо кодиране:

Представяне на дума във векторен формат, така че дължината на вектора да е равна на размера на речника и елементът в индекса на тази конкретна дума ще бъде само 1, а останалите ще бъдат 0.

Да предположим, че имаме изречение „Обичам НЛП“. OHE за изречението изглежда така.

Този тип представяне не дава интуиция за семантиката между думите или как са свързани думите (контекстуална близост).

Мисля, че недостатъкът на OHE също произтича от факта, че за много големи данни OHE векторът ще бъде изключително голям и рядък (с много нули, които трябва да се съхраняват). Контекстът също не се улавя от представянето на OHE.

Подход, базиран на SVD:

За огромен корпус ние извършваме SVD върху матрица на съвместно срещане и след разлагане получаваме векторите U (матрица на собствения вектор), S (матрица на собствените стойности) и V.T (транспониране на V - обратно на матрицата на собствения вектор ).

По-долу е матрицата на съвместно срещане за изреченията „Розите са червени“ и „Небето е синьо“. Матрицата на съвместно срещане показва колко пъти думатаред е заобиколена от думатаколона в изреченията.

Векторите на матрицата U, която е Eigen вектор-матрица или левите сингулярни вектори, ще се считат за векторни представяния за думите.

Лично аз намерих тази статия за интересна, за да прочета повече за този подход: https://medium.com/analytics-vidhya/co-occurrence-matrix-singular-value-decomposition-svd-31b3d3deb305

Така че от връзката по-горе научих предимствата и недостатъците на метода.

  1. Ние знаем връзката между думите в матрицата на съвместно срещане.

2. Може да се изчисли веднъж и да се използва многократно, след като бъде изчислено, но това идва с недостатък, когато към корпуса често се добавят нови думи и размерите на матрицата непрекъснато се променят.

3. Като цяло отнема много памет, особено когато има много думи, които не се срещат едновременно и повечето от елементите са нула.

Матрица на срочния документ:

Както подсказва името, ние създаваме матрично представяне на размерите Размер на речника x Брой документи. За дума от речника ние представяме броя пъти, в които се среща във всеки документ.

Не улавя реда/позицията и семантиката на думите.

Разпределителен характер на вектора на думите:

Основава се на хипотезата, че значението на думата може да бъде изведено въз основа на контекста, в който се появява.

Те не са добри в представянето на редки думи, които се срещат много малко пъти в корпуса. Той страда от проблема с неяснотата и не успява да се справи с морфологията (оценява и оценява се считат за различни).

Вграждането на думи може да се класифицира в общи линии в две категории — честота (пример: броене на вектор, TF-IDF вектор, матрица на съвместно появяване) и прогнозиране (непрекъснат пакет от думи (CBOW), пропускане на грам), базирано на вграждане.

Word2Vec :

Word2Vec е плитка, двуслойна невронна мрежа, обучена да реконструира лингвистични контексти на думи. Има две архитектури: Continuous Bag-of-Words и Skip-gram.

Непрекъсната торба с думи:

Целева функция:

За създаване на вграждания на думи се използват n-думи в миналото и бъдещето.

Увеличаването на размера на прозореца не помага, добавя повече шум.

Тук контекстът и редът на думите нямат значение, така че просто вземаме торбата с думи и следователно „BOW“ е част от името му. Той също така дава семантичната връзка на думите.

CBOW се представя по-добре от Skip grams, защото те са в състояние да използват по-добре входните данни за по-добро улавяне на векторите на думите ефективно.

Пропускане на грамове:

Тук целевата дума се въвежда, докато контекстните думи се извеждат, за разлика от CBOW.

Това е подход за обучение без надзор, така че може да учи от всеки предоставен необработен текст и изисква по-малко памет. Задаването на броя на невроните в скрития слой и получаването на позицията на контекста е трудно и времето, необходимо за обучение, е голямо.

GloVE (Глобални вектори за представяне на думи):

•Моделът на ръкавицата съчетава броя на съвместните поява на думи и подходи, базирани на прозорец

• В началото трябва да се изчисли много голяма матрица на съвместно срещане, обозначена с ‘P

• За всяка двойка думи, които могат да се срещат едновременно, минимизирайте разстоянието между вътрешното произведение на две думи и регистрационния брой на две думи

•Стойността на квадратното разстояние се претегля с помощта на f(Pij)което ще присвои по-ниски тегла на двойката с голям брой

• Тук се разглеждат отделни срещания на думи

FastText:

Използван за ефективна класификация и представяне на текст, FastText представя всяка дума като торба с n-грамове на знаци. Тъй като вгражданията се научават с помощта на n-грами, той ще има информация за суфиксите и префиксите.

Библиотека FastText за вграждане и класификация на думи позволява да се създават алгоритми за неконтролирано обучение или контролирано обучение за получаване на векторни представяния на думи.

FastText може да получи вектори дори за думи извън речника (OOV), като сумира вектори за съставните си символни n-грами, при условие че поне една от символните n-грами присъства в данните за обучение.

Референции:

  1. „Обработка на реч и език“, Daniel Jurafsky, James H Martin, подготовка [цитирано 1 юни 2020] (Достъпно от: https://web. stanford. edu/~ jurafsky/slp3 (2018))
  2. https://en.wikipedia.org/wiki/Word_embedding
  3. https://towardsdatascience.com/https-medium-com-tanaygahlot-moving-beyond-the-distributional-model-for-word-representation-b0823f1769f8
  4. https://medium.com/analytics-vidhya/co-occurrence-matrix-singular-value-decomposition-svd-31b3d3deb305
  5. https://deepdatascience.wordpress.com/2017/04/25/word2vec-continous-bag-of-words/
  6. https://towardsdatascience.com/skip-gram-nlp-context-words-prediction-algorithm-5bbf34f84e0c
  7. https://www.kdnuggets.com/2016/05/amazing-power-word-vectors.html/2

Предишни части от тази серия:

Част #1: https://medium.com/@deepthi.sudharsan/exploring-nlp-kickstarting-nlp-step-1-e4ad0029694f

Част #2: https://medium.com/@deepthi.sudharsan/exploring-nlp-kickstarting-nlp-step-2-157a6c0b308b