Modelling
Clusterring
Clusterring merupakan tugas deskripsi yang digunakan untuk himpunan terbatas untuk mendeskripsikan data yang diolah
Tujuan metode ini adalah mengelompokkan data yang homogen/sejenis sehingga data yang berada di cluster yang sama mempunyai banyak kesamaan dibanding dengan data yang ada di cluster yang berbeda.
Source code untuk clustering :
import library pandas dan inisialisasikan menjadi pd
import pandas as pd
import library numpy dan inisialisasikan menjadi np
import numpy as np
dari library math import function log
from math import log
dari library sklearn fitur ekstrasi teks import CountVectorizer
from sklearn.feature_extraction.text import CountVectorizer
fungsi untuk menghitung idf
def idf(doc, wordBank):
#hitung jumlah doc
N = len(doc.index)
#buat dataframe dengan header word dan idf
result = pd.DataFrame(columns=['word', 'idf'])
#untuk setiap kata pada wordBank lakukan.....
for index, word in wordBank.iterrows():
#hitung jumlah doc yang mengandung kata word['words']
dft = np.sum(doc.str.contains(word['kata']))
#hitung inverse document frequency smooth
idft = log(N / (dft + 1), 10)
#tambahkan idf untuk setiap kata pada data frame
result = result.append(pd.Series([word['kata'], idft], index=['word', 'idf']), ignore_index=True)
#return variable result
return result
fungsi untuk menghitung tf``def tf(doc, wordBank):
#split kata berdasarkan spasi
wordList = doc.str.split(' ')
#hitung jumlah kata pada setiap doc
maxFt = [len(s) for s in wordList]
#buat DataFrame kosong untuk menyimpan hasil perhitungan Tf
result = pd.DataFrame()
#untuk setiap word dalam wordbank lakukan ....
for index, word in wordBank.iterrows():
#hitung frekuensi kata untuk setiap doc
ft = np.add([s.count(word['kata']) for s in wordList], 0)
#tf log normalization
ftd = 1 + np.log10(ft+1e-15)
#tambahkan hasil perhitungan tf kedalam DataFrame
result = result.append(pd.Series(ftd), ignore_index=True)
#mengganti -inf dengan 0
result = result.replace(-np.inf, 0)
#return variable result
return result
def tfIdf(tf, idf):
#buat DataFrame kosong untuk menyimpan hasil perhitungan Tf-Idf
result = pd.DataFrame()
#untuk setiap tf
for i in tf:
#tf idf untuk document term weighting tf * idf
tfIdf = tf[i] * idf['idf']
#tambahkan hasil perhitungan tf idf kedalam DataFrame
result = result.append(pd.Series(tfIdf), ignore_index=True)
#return variable result
return result
membaca file dataTest.csv menggunakan pandas
doc = pd.read_csv('dataTest.csv', encoding='utf-8')
membaca file wordBank.csv
wordBank.csv berisi kata-kata penting atau keywords yang dianggap relevan dengan topik dalam sebuah kasus
vocabulary = pd.read_csv('wordBank.csv', encoding='utf-8')
ubah seluruh objek menjadi str/string
doc = doc['sentences'].str.lower()
mengonversi teks menjadi vektor jumlah kata
count = CountVectorizer()
bag = count.fit_transform(doc)
print(bag)
melihat fitur kata
a=count.get_feature_names()
print(a)
hitung nilai IDF
resultIDF = idf(doc, vocabulary)
print('\n'+'Hasil perhitungan nilai IDF')
print(resultIDF)
cetak hasil IDF
resultIDF.to_csv(r'nilaiIDF.csv', index = False)
print('Output saved in "nilaiIDF.csv"')
hitung nilai TF
resultTF = tf(doc, vocabulary)
print('\n'+'Hasil perhitungan nilai TF')
print(resultTF)
cetak hasil TF
resultTF.to_csv(r'nilaiTF.csv', index = False)
print('Output saved in "nilaiTF.csv"')
hitung nilai Tf-Idf
resultTfIdf = tfIdf(resultTF, resultIDF)
print('\n'+'Hasil perhitungan nilai Tf-Idf')
print(resultTfIdf)
cetak hasil Tf-Idf
resultTfIdf.to_csv(r'VSM(TF-IDF).csv', index = False)
print('Output saved in "VSM(TF-IDF).csv"')
Classification
Classification adalah metode yang paling umum pada data mining. Persoalan bisnis sperti Churn Analysis, dan Risk Management biasanya melibatkan metode Classification.Classification adalah tindakan untuk memberikan kelompok pada setiap keadaan. Setiap keadaan berisi sekelompok atribut, salah satunya adalah class attribute. Metode ini butuh untuk menemukan sebuah model yang dapat menjelaskan class attribute itu sebagai fungsi dari input attribute. |
Referensi
https://glints.com/id/lowongan/web-crawling-adalah/#.YMFsiKgzbIU