MENGGUNAKAN PUSTAKA PYTHON UNTUK PENGOLAHAN TEKS BERBAHASA INDONESIA

Standard
  1. INSTALASI PTYHON-PIP PADA SISTEM OPERASI LINUX
    Buka terminal command line lalu ketik perintah sudo apt-get install python-pip
  1. INSTALASI PUSTAKA SASTRAWI
    Ketik perintah berikut sudo pip install sastrawi
  1. BUAT SEBUAH FILE MISALNYA BERNAMA STEMMER.PYTekan CTRL+X lalu pilih Y untuk menyimpan
  2. Kompilasi file menggunakan perintah python filename.py akan diperoleh hasil berikut

 

Advertisements

Implementasi Sederhana Algoritma K-Nearest Neighbor Bahasa Pemrograman Python

Standard

Algoritma K-Nearest Neighbor merupakan metode klasifikasi yang mengelompokan data baru berdasarkan jarak data baru itu kebeberapa data/tetangga (neighbord) terdekat (Santoso, 2007) [1].

Klasifikasi adalah proses penemuan model (atau fungsi) yang menggambarkan dan membedakan kelas data atau konsep yang bertujuan agar bisa digunakan untuk memprediksi kelas dari objek yang label kelasnya tidak diketahui (Kamber, 2006).

Klasifikasi data terdiri dari 2 langkah proses. Pertama adalah learning (fase training), dimana algoritma klasifikasi dibuat untuk menganalisa data training lalu direpresentasikan dalam bentuk rule klasifikasi. Proses kedua adalah klasifikasi, dimana data tes digunakan untuk memperkirakan akurasi dari rule klasifikasi (Kamber, 2006).

Proses klasifikasi didasarkan pada empat komponen (Gorunescu, 2011):

  1. Kelas

    Variabel dependen yang berupa kategorikal yang merepresentasikan „label‟ yang terdapat pada objek. Contohnya: resiko penyakit jantung, resiko kredit, customer loyalty, jenis gempa.

  2. Predictor

    Variabel independen yang direpresentasikan oleh karakteristik (atribut) data. Contohnya: merokok, minum alkohol, tekanan darah, tabungan, aset, gaji.

  3. Training dataset

    Satu set data yang berisi nilai dari kedua komponen di atas yang digunakan untuk menentukan kelas yang cocok berdasarkan predictor.

  4. Testing dataset

    Berisi data baru yang akan diklasifikasikan oleh model yang telah dibuat dan akurasi klasifikasi dievaluasi.

LOAD DATASET


import csv
import random
import math
import operator

def loadDataset(filename, split, trainingSet=[] , testSet=[]):
with open(filename, 'rb') as csvfile:
lines = csv.reader(csvfile)
dataset = list(lines)
for x in range(len(dataset)-1):
for y in range(4):
dataset[x][y] = float(dataset[x][y])
if random.random() < split:
trainingSet.append(dataset[x])
else:
testSet.append(dataset[x])

def main():
# prepare data
trainingSet=[]
testSet=[]
split = 0.67
loadDataset('iris.data', split, trainingSet, testSet)
print 'Train set: ' + repr(len(trainingSet))
print 'Test set: ' + repr(len(testSet))

# generate predictions

main()

Ketika program diatas dieksekusi (docs: https://www.python.org/doc/) maka akan ditampilkan jumlah data set dan data train yang digunakan dari sekian jumlah data yang disiapkan.

MENCARI OBJEK TERDEKAT

Pada tahap ini, dilakukan perhitungan jarak terdekat dari setiap objek menggunakan Euclidean Distance [2]


import csv
import random
import math
import operator

def loadDataset(filename, split, trainingSet=[] , testSet=[]):
with open(filename, 'rb') as csvfile:
lines = csv.reader(csvfile)
dataset = list(lines)
for x in range(len(dataset)-1):
for y in range(4):
dataset[x][y] = float(dataset[x][y])
if random.random() < split:
trainingSet.append(dataset[x])
else:
testSet.append(dataset[x])

def euclideanDistance(instance1, instance2, length):
distance = 0
for x in range(length):
distance += pow((instance1[x] - instance2[x]), 2)
return math.sqrt(distance)

def getNeighbors(trainingSet, testInstance, k):
distances = []
length = len(testInstance)-1
for x in range(len(trainingSet)):
dist = euclideanDistance(testInstance, trainingSet[x], length)
distances.append((trainingSet[x], dist))
distances.sort(key=operator.itemgetter(1))
neighbors = []
for x in range(k):
neighbors.append(distances[x][0])
return neighbors

def main():
# prepare data
trainingSet=[]
testSet=[]
split = 0.67
loadDataset('iris.data', split, trainingSet, testSet)
print 'Train set: ' + repr(len(trainingSet))
print 'Test set: ' + repr(len(testSet))

# generate predictions
predictions=[]
k = 3
for x in range(len(testSet)):
neighbors = getNeighbors(trainingSet, testSet[x], k)
print(neighbors)

main()

MENGHITUNG AKURASI

import csv
import random
import math
import operator

def loadDataset(filename, split, trainingSet=[] , testSet=[]):
with open(filename, 'rb') as csvfile:
lines = csv.reader(csvfile)
dataset = list(lines)
for x in range(len(dataset)-1):
for y in range(4):
dataset[x][y] = float(dataset[x][y])
if random.random() < split:
trainingSet.append(dataset[x])
else:
testSet.append(dataset[x])

def euclideanDistance(instance1, instance2, length):
distance = 0
for x in range(length):
distance += pow((instance1[x] - instance2[x]), 2)
return math.sqrt(distance)

def getNeighbors(trainingSet, testInstance, k):
distances = []
length = len(testInstance)-1
for x in range(len(trainingSet)):
dist = euclideanDistance(testInstance, trainingSet[x], length)
distances.append((trainingSet[x], dist))
distances.sort(key=operator.itemgetter(1))
neighbors = []
for x in range(k):
neighbors.append(distances[x][0])
return neighbors

def getResponse(neighbors):
classVotes = {}
for x in range(len(neighbors)):
response = neighbors[x][-1]
if response in classVotes:
classVotes[response] += 1
else:
classVotes[response] = 1
sortedVotes = sorted(classVotes.iteritems(), key=operator.itemgetter(1), reverse=True)
return sortedVotes[0][0]

def getAccuracy(testSet, predictions):
correct = 0
for x in range(len(testSet)):
if testSet[x][-1] == predictions[x]:
correct += 1
return (correct/float(len(testSet))) * 100.0

def main():
# prepare data
trainingSet=[]
testSet=[]
split = 0.67
loadDataset('iris.data', split, trainingSet, testSet)
print 'Train set: ' + repr(len(trainingSet))
print 'Test set: ' + repr(len(testSet))

# generate predictions
predictions=[]
k = 3
for x in range(len(testSet)):
neighbors = getNeighbors(trainingSet, testSet[x], k)
result = getResponse(neighbors)
predictions.append(result)
print('RESULT: predicted=' + repr(result) + ', actual=' + repr(testSet[x][-1]))
accuracy = getAccuracy(testSet, predictions)
print 'PREDICT: ', accuracy

Referensi :

[1] http://jurnal.unpand.ac.id/index.php/NT/article/download/350/344

[2] https://blogs.itb.ac.id/anugraha/2014/09/10/teori-pengukuran-jarak/

Menghitung regresi linear berganda menggunakan bahasa pemrograman python

Standard

Analisis regresi linier berganda adalah hubungan secara linear antara dua atau lebih variabel independen (X1, X2,….Xn) dengan variabel dependen (Y). Analisis ini untuk mengetahui arah hubungan antara variabel independen dengan variabel dependen apakah masing-masing variabel independen berhubungan positif atau negatif dan untuk memprediksi nilai dari variabel dependen apabila nilai variabel independen mengalami kenaikan atau penurunan. Data yang digunakan biasanya berskala interval atau rasio.

Persamaan regresi linear berganda sebagai berikut: Continue reading

Menggambar plot regresi linear menggunakan bahasa pemrograman python

Standard

Regresi linier adalah regresi yang variabel bebasnya (variabel X) berpangkat paling tinggi satu. Utk regresi sederhana, yaitu regresi linier yg hanya melibatkan dua variabel (variabel X dan Y).

Y = a + bX

Dimana :
Y = Variabel Response atau Variabel Akibat (Dependent)
X = Variabel Predictor atau Variabel Faktor Penyebab (Independent)
a = konstanta
b = koefisien regresi (kemiringan); besaran Response yang ditimbulkan oleh Predictor. Continue reading

Program sederhana Sentiment Analysis menggunakan Python dan NLTK

Standard

Text mining dilakukan oleh komputer untuk mendapatkan sesuatu yang baru, sesuatu yang tidak diketahui sebelumnya atau menemukan kembali informasi yang tersirat secara implisit, yang berasal dari informasi yang diekstrak secara otomatis dari sumber-sumber data teks yang berbedabeda (Feldman & Sanger, 2007).

Text mining merupakan teknik yang digunakan untuk menangani masalah klasifikasi, clustering, information extraction dan information retrival (Berry & Kogan, 2010). Pada dasarnya proses kerja dari text mining banyak mengapdopsi dari penelitian Data Mining namun yang menjadi perbedaan adalah pola yang digunakan oleh text mining diambil dari sekumpulan bahasa alami yang tidak terstruktur sedangkan dalam Data Mining pola yang diambil dari database yang terstruktur (Han & Kamber, 2006).

Salah satu topik dalam text mining adalah sentiment analysis. Continue reading

Implementasi metode simpson menggunakan bahasa pemrograman python

Standard
import math
import decimal

a = 0; b = 1; n = 10
h = float (b-a) / n
r = 0
start = 0

print ("  Metode Numerik   ")
print ("Algoritma Simpson  ")
print

def power(x,y):
	return x ** y;

def fx( x ):
	return ( 0.25 * power(x,5)) + (3 * power(x,2));

def real (a,b):
	return ( float(1)/float(24) * power(b,6) + power(b,3) ) - ( float(1)/float(24) * power(a,6) + power(a,3) )

def Simpson( h, r ):
	return  h / 3 * r

for i in range(0,11):
	if i == 0:
		r+=fx(start);
		print "f(",start,")\t: ", fx(start), "\t\tR        : ", r;
	elif i == 10:
		r+=fx(start);
		print "f(",start,")\t: ", fx(start), "\t\tR        : ", r;
	elif i % 2 == 0:
		r+=2*fx(start);
		print "f(",start,")\t: ", 2*fx(start), " \tR        : ", r;
	elif i % 2 == 1:
		r+=4*fx(start);
		print "f(",start,")\t: ", 4*fx(start), " \tR        : ", r;
	start+=h

print

print ("a  : ", a);
print ("b  : ", b);
print ("h  : ", h);
print ("n  : ", n);

print

real = round(real( a,b ), 6)
numeric = Simpson( h,r )

print ("Simpson Real     : ", real)
print ("Simpson Numeric  : ", numeric)
print ("Simpson Error    : ", numeric - real)
print

Contoh kode diatas adalah bentuk penyelesaian metode simpson dalam mencari suatu nilai pendekatan terhadap persamaan f(x) = 1/4 x5 + 3 x2

Hasil perhitungan menggunakan kode diatas adalah seperti berikut :

screen-shot-2016-12-07-at-12-23-56-pm