Skip to content

3. Pelatihan model manual

Ghazy edited this page Feb 27, 2024 · 2 revisions

Intro

Jika user ingin menggunakan dataset sendiri, user harus melakukan proses pelatihan sendiri. Penggunaan tidak akan mampu menggunakan modul-modul sensi.resources.predictor. Yang tertulis erikut ini adalah contoh.

Peringatan: Jangan menggunakan modul-modul dari sensi.resources.predictor jika inging melatih model sendiri!

Persipan dataset

contoh persiapan dataset:

import pandas as pd
import numpy as np

# deklarasi dataset
dataset = pd.read_csv("training_dataset.csv")
all_pos = dataset[dataset['label'] == 1]
all_neg = dataset[dataset['label'] == 0]

# pembagian dataset training:testing diserahkan kepada pengguna
train_pos = all_pos[:int(len(all_pos)*0.8)]
train_neg = all_neg[:int(len(all_neg)*0.8)]
test_pos = all_pos[-int(len(all_pos)*0.2):]
test_neg = all_neg[-int(len(all_neg)*0.2):]

# dataframe kata
train_x = train_pos.append(train_neg, ignore_index=True)
test_x = test_pos.append(test_neg, ignore_index=True)
# dataframe label
train_y = np.append(np.ones(len(train_pos)), np.zeros(len(train_neg)))
test_y = np.append(np.ones(len(test_pos)), np.zeros(len(test_neg)))

Pelatihan

Tahap-tahap pelatihan:

  1. kamus frekwensi
from sensi.resources.sentiment import kamus_freq

kamus_frekwensi = kamus_freq(train_x['text'].tolist(), train_y.tolist())
  1. nilai prior dan likelihood
from sensi.resources.sentiment import hitung_likelihood, hitung_prior

log_prior = hitung_prior(kamus_frek, train_y)
log_likelihood = hitun_likelihood(kamus_frek)

nilai-nilai prior dan likelihood akan digunakan untuk mengkalkulasikan nilai sentiment pada tahapan berikutnya.

Kalkulasi prediksi

from sensi.resources.sentiment import predict_nbc
text = "contoh string input"
predict_nbc(text, log_prior, log_likelihood)

output yang akan diberikan adalah float. Untuk penggunaan yang lebih canggih, pengguna dapat melihat contoh source code pada sensi.resources.predictor.

Pengujian model

  1. Pengujian sederhana
from sensi.resources.sentiment import test_nbc

hasil_test = test_nbc(test_x['text'].tolist(), test_y.tolist(), log_prior, log_likelihood)
  1. Skor F1

kalkulasi skor F1 dapat dibaca pada artikel ini. Lihat juga:

Clone this wiki locally