fastText и как да го използваме за анализ на текст?

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

Например, ако направите публикация във фейсбук, че ще напуснете работата си, за да започнете някакво свое ново начинание и изведнъж фейсбук започне да ви показва реклами като тази-

И така, как фейсбук точно знае какво да покаже?

Това е магията на неговата библиотека NLP - fastText.

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

Тази библиотека спечели много внимание в NLP общността, тъй като показа страхотни съвременни резултати в различни NLP домейни.

Как се използва?

В тази статия ще ви кажа, че как да го използвате за класификация на текст.

Стъпка 1: Поставяне на вашите данни в правилен формат

Много е важно за FastText да разполага с данни в предписан правилен формат.

Форматът:

_label_0 your_text

Тук „_label_“ трябва да се използва такъв, какъвто е.

„0“ казва етикета ви (стойността в колоната с етикети за този конкретен ред)

„Your_text“ е текстът, върху който искате да обучите вашия класификатор.

В горния код съм показал начина как да отворя нов файл 'train.txt' за писане и записване на вашия кадър от данни в него.

Стъпка 2: Клониране на репо

На следващо място, ние трябва да клонираме fastText repo в нашия бележник, за да използваме неговите функции.

Repo id: https://github.com/facebookresearch/fastText.git

След клонирането следвайте следните стъпки:

Уверете се, че файлът ви 'train.txt' е в папката fastText, създадена чрез клониране на репо.

Стъпка 3: Игра с команди

Сега вашият модел е готов за обучение, дайте следната команда за обучение на вашия класификатор-

./fasttext контролиран -input train.txt -output <път за запазване на модела>

-лабел __label__ -lr 0,1 -epoch 40

Следните аргументи са задължителни:

  • -входен файл на учебния файл
  • -изходен път на изходния файл

Можете да си поиграете с тези параметри, за да прецизирате модела си (не забравяйте да използвате тире (-), преди да използвате какъвто и да е аргумент)

При условие, аргумент без тире!

Начин на употреба:

Следните аргументи са незадължителни:

  • -борово ниво на многослойност [2]

Следните аргументи за речника са незадължителни:

  • -minCount минимален брой възниквания на думи [1]
  • -minCountLabel минимален брой възникнали етикети [0]
  • -wordNgrams максимална дължина на думата ngram [2]
  • -брой кофи [2000000]
  • -minn мин. дължина на char ngram [0]
  • -maxn максимална дължина на char ngram [0]
  • -t праг за вземане на проби [0,0001]
  • префикс-етикети [__label__]

Следните аргументи за обучение са незадължителни:

  • -lr степен на обучение [0,1]
  • -lrUpdateRate промяна на скоростта на актуализациите за степента на обучение [100]
  • -размер на думите вектори [100]
  • -ws размер на контекстния прозорец [5]
  • -епох брой епохи [40]
  • -брой брой извадени негативи [5]
  • функция за загуба на загуба {ns, hs, softmax, един срещу всички} [softmax]
  • -брой конци [12]
  • -pretrainedVectors претърсени думи вектори за контролирано обучение []
  • -saveOutput дали параметрите на изхода трябва да бъдат запазени [false]

Следните аргументи за количествено определяне са незадължителни:

  • брой на думите и ngram за запазване [0]
  • -проучете дали вгражданията са финализирани, ако се приложи прекъсване [вярно]
  • -qnorm дали нормата се определя количествено отделно [false]
  • -изяснете дали класификаторът е количествено [невярно]
  • -размер на всеки подвектор [2]

Стъпка 4: Предсказване на запазен модел

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

Точността е броят на правилните етикети сред етикетите, предвидени от fastText. Извикването е броят на етикетите, които успешно бяха предвидени.

./fasttext тест <път до модел> <път към тестовия файл> k

Уверете се, че тестовият файл също е в същия формат като влаков файл.

За да прогнозирате нови етикети:

./fasttext предскажете <път до модел> <път до тестов файл> k> <път до файл за прогнозиране>

където k означава, че моделът ще предвижда горните k етикети за всеки преглед.

Предписаните етикети за горните прегледи са както следва:

__label__2
__label__1
__label__2
__label__2
__label__2
__label__2
__label__2
__label__2
__label__1
__label__2
__label__2

След това файлът за прогнозиране може да се използва за по-нататъшен подробен анализ и визуализация.

fastText показа страхотни резултати в други области, също като представяне на думи и т.н., които ще бъдат разгледани в следващите статии.

Благодаря ви, че прочетохте тази статия.