Вот пошаговая разбивка предоставленного скрипта Ruby для анализа настроений:

require 'scikit-learn'

# Prepare your data
x_train = [
  "I love this movie",
  "The plot was intriguing",
  "Great performance by the actors",
  "It was a terrible experience",
  "The ending was disappointing"
] # Training text

y_train = [1, 1, 1, 0, 0] # Training labels (1 for positive sentiment, 0 for negative sentiment)

# Vectorize the text data
vectorizer = Scikit::Learn::FeatureExtraction::Text::CountVectorizer.new
x_train_vectorized = vectorizer.fit_transform(x_train)

# Define and train your model
model = Scikit::Learn::NaiveBayes::MultinomialNB.new
model.fit(x_train_vectorized, y_train)

# Prepare new test data
x_test = [
  "This movie is amazing",
  "I didn't like the acting"
] # Testing text

# Vectorize the test data
x_test_vectorized = vectorizer.transform(x_test)

# Make predictions
y_pred = model.predict(x_test_vectorized)

# Print the predictions
puts "Predictions:"
y_pred.each { |prediction| puts prediction == 1 ? "Positive" : "Negative" }

Шаг 1: Подготовьте данные

  • Определите обучающие текстовые данные x_train, которые состоят из обзоров фильмов.
  • Назначьте метки тональности y_train (1 для положительного, 0 для отрицательного), соответствующие каждому отзыву.

Шаг 2: Векторизуйте текстовые данные

  • Создайте экземпляр CountVectorizer из scikit-learn, используя Scikit::Learn::FeatureExtraction::Text::CountVectorizer.new.
  • Используйте метод fit_transform для преобразования обучающих текстовых данных X_train в числовой формат, подходящий для машинного обучения. Сохраните результат в x_train_vectorized.

Шаг 3: Определите и обучите модель

  • Создайте экземпляр наивного байесовского классификатора (MultinomialNB), используя Scikit::Learn::NaiveBayes::MultinomialNB.new.
  • Обучите модель, используя векторизованные обучающие данные x_train_vectorized и метки настроений y_train, используя метод fit.

Шаг 4: Подготовьте тестовые данные

  • Определите новые тестовые текстовые данные X_test, которые включают дополнительные обзоры фильмов, требующие анализа тональности.

Шаг 5: Векторизация тестовых данных

  • Используйте тот же экземпляр CountVectorizer для преобразования тестовых текстовых данных x_test в числовой формат. Сохраните результат в x_test_vectorized.

Шаг 6: Делайте прогнозы

  • Используйте обученную модель для прогнозирования меток настроений для векторизованных тестовых данных x_test_vectorized с помощью метода predict. Сохраните прогнозы в y_pred.

Шаг 7: Распечатайте предсказания

  • Переберите массив y_pred и напечатайте каждый прогноз как «Положительный» или «Отрицательный», используя метод puts.

Испытайте инновационную революцию вместе с Химаншу Шармой. Присоединяйтесь ко мне, чтобы получать эксклюзивные идеи, мнения экспертов и самые свежие новости. Следуйте за мной сейчас, чтобы оставаться на шаг впереди. Давайте вместе отправимся в это увлекательное путешествие! #FollowMe #Innovation #HimanshuSharma #MachineLearning #Ruby #RubyOnRails