Об'єднати класифікатор машинного навчання з NLTK Вейдером для аналізу настроїв

У рамках мого університетського проекту я досліджую/розробляю модель аналізу настроїв, де я намагаюся поєднати результати NLTK Vader (SentimentIntensityAnalyzer) з навчальним класифікатором Machine Learning для прогнозування настроїв на даних Twitter.

Detailed description -

Пояснити, що я намагаюся зробити - це комбінувати класифікатор машинного навчання та аналіз настроїв NLTK Vader, щоб покращити класифікацію твітів як позитивних, негативних чи нейтральних.

Що я зробив -

  1. очистили дані ( twitter corpus Niek Sanders ) і попередньо -перероблено твітів, які включають в себе зупинення слів, видалення URL-адреси, видалення згадки користувачів, видалення # символу з Hashtags, перетворення нижньої регістру, обробка стовпця тощо.

  2. Навчання розподілено на 80:20: коефіцієнт тесту

  3. Використовується TfidfVectorizer для створення розрідженої матриці функцій з TFIDF словами. Кількість стовпців дорівнює кількості слів у чистих даних.

  4. Використовуйте цю векторну матрицю для навчання та перевірки класифікаторів, використовуючи scikit-learn.

Classifiers used - This same vector matrix is being used to train - KNN, Random forest, Naive Bayes, SVM, Artificial Neural Network and Convolutional Neural Network.

Тепер основне сумнів виникає при спробі об'єднати NLTK Вейдер (SentimentIntensityAnalyzer результати).

Що я роблю - з кроку 3 вище, у векторній матриці tfidf я додаю 2 стовпці, і я додаю результат позитивної та негативної полярності для tweet, який надається NLTK, так що тепер векторна матриця має 2 нових стовпця n + 1 (загальна позитивна полярність чірікать по NLTK), n + 2 (загальна негативна полярність твіту NLTK), і це виглядає так:

    0      1     2     3     4     5     6     7  ......... |  n+1    |   n+2
------------------------------------------------------------|---------|----------
    0.4   0.3   0.4   0.1   0.5   0.3   0.2   0.4 ......... |  0.345  |  0.345
    0.5   0.3   0.2   0.8   0.3   0.6   0.4   0.5 ......... |  0.765  |  0.523
    0.6   0.4   0.1   0.7   0.8   0.8   0.2   0.2 ......... |  0.392  |  0.664
    0.2   0.9   0.7   0.4   0.9   0.9   0.8   0.5 ......... |  0.832  |  0.658
    0.9   0.5   0.9   0.7   0.3   0.2   0.2   0.5 ......... |  0.273  |  0.283
    0.5   0.2   0.2   0.7   0.2   0.1   0.6   0.6 ......... |  0.505  |  0.194
    0.4   0.3   0.2   0.3   0.3   0.9   0.5   0.5 ......... |  0.102  |  0.927
    0.1   0.8   0.1   0.2   0.1   0.5   0.2   0.7 ......... |  0.735  |  0.455

Question - So is it correct to add it this way?

Я також міг перетворити ці полярності в подвійні значення, щоб позначити, якщо загальне почуття позитивне, негативне чи нейтральне, використовуючи 0 і 1.

Note - I am representing 3 categories(positive, negative or neutral) using 2 columns to avoid dummy variable trap.

Хоча це підвищило загальну точність класифікаторів за малих запасів 1-2%.

But am I doing it right? If not, kindly let me know how can I collaborate the two mentioned above, i.e. NLTK Vader results with Machine Learning classifiers.

2
Я відповідаю тобі через рік, сподіваюсь, це теж стосується вас. Отже, я натрапив на вашу публікацію, оскільки зараз стикається з такою ж проблемою. Я вивчаю аналіз настроїв для соціальних медіа на китайському мовою. Для мого першого базового сценарію я зробив власну реалізацію VADER для китайців з метою прогнозування настроїв для Weibo. З деякими змінами вона працює досить добре ~ ~ 90% точності. Я запровадив кілька правил POS для прогнозування настроїв, але, на жаль, китайська мова є дещо складнішою, ніж англійська, і існує не так багато хороших лексиконів. Тому я хочу, щоб я
додано Автор cordo, джерело

Відповідей немає

0
Штучний інтелект Dev UA
Штучний інтелект Dev UA
212 учасників

Штучний інтелект, машинне навчання, Data Science