Деталізація з n-грамами

Аналіз тональності в Python

Violeta Misheva

Data Scientist

Контекст має значення

I am happy, not sad.

I am sad, not happy.

  • Додавання «not» перед словом (заперечення) показує, чому контекст важливий.
Аналіз тональності в Python

Фіксуємо контекст у BOW

  • Уніграми: окремі токени

  • Біграми: пари токенів

  • Тріграми: трійки токенів

  • n-грамі: послідовність із n токенів

Аналіз тональності в Python

Фіксуємо контекст із BOW

The weather today is wonderful.

  • Уніграми: { The, weather, today, is, wonderful }

  • Біграми: {The weather, weather today, today is, is wonderful}

  • Тріграми: {The weather today, weather today is, today is wonderful}

Аналіз тональності в Python

n-грами з CountVectorizer

from sklearn.feature_extraction.text import CountVectorizer
vect = CountVectorizer(ngram_range=(min_n, max_n))
# Лише уніграми
ngram_range=(1, 1)
# Уніграми та біграми
ngram_range=(1, 2)
Аналіз тональності в Python

Яке n найкраще?

Довші послідовності токенів
  • Дає більше ознак
  • Вища точність моделей машинного навчання
  • Ризик перенавчання
Аналіз тональності в Python

Задаємо розмір словника

CountVectorizer(max_features, max_df, min_df)
  • max_features: якщо вказано, включає лише найчастіші слова у словнику
    • Якщо max_features = None, будуть включені всі слова
  • max_df: ігнорує терміни з частотою вище заданої
    • Ціле число — абсолютна кількість; число з плаваючою комою — частка
    • Типово 1.0, тобто жодні терміни не ігноруються
  • min_df: ігнорує терміни з частотою нижче заданої
    • Ціле число — абсолютна кількість; число з плаваючою комою — частка
    • Типово 1.0, тобто жодні терміни не ігноруються
Аналіз тональності в Python

Давайте потренуємось!

Аналіз тональності в Python

Preparing Video For Download...