В этой статье вы узнаете, как использовать Xcode Playground для создания модели анализа настроений и как использовать эту модель в своем приложении для iOS.

Главы:

  • Что такое Анализ настроений?
  • Набор данных модели
  • Используйте Xcode Playground для создания модели анализа настроений
  • Используйте модель в своем приложении для iOS

Что такое анализ настроений?

Анализ настроений - это интерпретация и классификация настроений в тексте. Другими словами, это процесс распознавания эмоций, связанных с текстом.

Например, «я люблю яблоки» — это положительная эмоция, а «я ненавижу тесные пространства» — отрицательная эмоция.

Набор данных

Как и любой модели, нам нужны данные для обучения модели, вы можете собрать данные или вам повезет найти подходящий набор данных в Интернете.

Спасибо Университету Карнеги-Меллона, который предоставил нам хороший набор данных под названием «epinions3». Вы найдете его по ссылке ниже.



Этот набор данных содержит 691 сообщение, в котором рекомендуются автомобили Ford, и 691 сообщение, в котором автомобили Ford не рекомендуются, как описано на веб-сайте.

Используйте Xcode Playground для создания модели анализа настроений

л. Откройте новую пустую игровую площадку Xcode, это должна быть macOS, чтобы вы могли использовать CreateML Framework.

2. Импортируйте CreateML.

3. Определите переменную, в которой хранится путь, содержащий ваш набор данных (epinions3.csv), а в другой — путь, по которому вы хотите сохранить результирующую модель.

import CreateML
let filePath = "/Users/khawlahkhalid/Desktop/epinions3.csv"
let outputFileName = "/Users/khawlahkhalid/Desktop/SentimentAnalysisModel.mlmodel"

4. Создайте URL-адрес из переменной filePath, чтобы мы могли получить URL-адрес данных.

let dataURL = URL(fileURLWithPath: filePath)

5. Получите фактические данные, используя MLDataTable, который будет считывать данные из переменной dataURL.

let data = try MLDataTable(contentsOf: dataURL)

6. Разделите данные на два набора: набор данных для обучения и набор данных для тестирования. Вы можете решить процент, как вы хотите. Здесь мы берем 80% в качестве данных для обучения, а оставшиеся 20% — в качестве данных для тестирования.

let (trainingData, testingData) = data.randomSplit(by: 0.8)

7. Теперь пришло время для фактического обучения с использованием MLTextClassifier. Передайте имя столбца с фактическим текстом в параметр texColumn и имя столбца с классом метки в параметр labelColumn.

let sentimentModel = try MLTextClassifier(trainingData: trainingData, 
textColumn: "text", labelColumn: "class")

8. Создайте метаданные, которые представляют собой данные, относящиеся к вашей модели, такие как имя автора, краткое описание модели и версия модели.

let metadata = MLModelMetadata(author: "Khawlah Bawazir", shortDescription: "Sentiment Analysis Model", version: "1.0")

9. Наконец, сохраните модель на свой диск, используя уже созданную нами переменную outputFileName.

try sentimentModel.write(to: URL(fileURLWithPath: outputFileName), 
metadata: metadata)

10. Запустите игровую площадку. Вы хорошо получаете файл .mlmodel на своем пути.

Поздравляем, теперь вы можете использовать эту модель в своих приложениях для выполнения анализа тональности, как вы используете любой .mlModel.

Полный код:

import Foundation
import CreateML

let filePath = "/Users/khawlahkhalid/Desktop/epinions3.csv"
let outputFileName = "/Users/khawlahkhalid/Desktop/SentimentAnalysisModel.mlmodel"


let dataURL = URL(fileURLWithPath: filePath)
let data = try MLDataTable(contentsOf: dataURL)

let (trainingData, testingData) = data.randomSplit(by: 0.8)

let sentimentModel = try MLTextClassifier(trainingData: trainingData, 
textColumn: "text", labelColumn: "class")

let metadata = MLModelMetadata(author: "Khawlah Bawazir", 
shortDescription: "Sentiment Analysis Model", version: "1.0")

try sentimentModel.write(to: URL(fileURLWithPath: outputFileName), 
metadata: metadata)

Используйте модель в своем приложении для iOS

  1. Перетащите модель в свой проект.
  2. Создайте экземпляр модели.
  3. Используйте функцию prediction и передайте текст, который хотите проанализировать.
  4. Получите метку из полученного прогноза, которая будет либо Neg, либо Pos относительно нашего набора данных.
    func analysisTheSentiment(){
        let model = SentimentAnalysisModel()
        do{
        let prediction = try model.prediction(text: input)
        result =  prediction.label
        }
        catch{
            
        }
    }

Получите полный проект iOS:



Начните создавать свои модели с легкостью, используя Xcode Playground 🚀