Senin, 05 Juni 2017

delete account spotify

Gak rugi sih buat akun spotify, bisa dengerin lagu gratis (kalo mau premium teteup atuh, bayar haha). Well, kalo ada yang mau hapus akun, semoga postingan ini bisa membantu.

1. Log in di https://open.spotify.com/
2. Open https://www.spotify.com/
3. Klik "About" atau "Tentang"


4.Klik "Contact us" atau "Formulir kontak"



5. Klik "Account" atau "Akun kamu"

6. Klik yang dilingkari


7. "Close account" or "Menutup akun"


You can add some information to them about ur reason to delete ur account. It'll help the, to improve their company.




This entry was posted in

Sabtu, 03 Juni 2017

Kalau Mau Mengomentari, Lu Harus Jadi Lebih Baik Dulu

Oh, com'on!

Masa harus jadi koki dulu baru boleh bilang "Mah, ini sayurnya keasinan."
Masa harus jadi makeup artist dulu baru boleh bilang "Say, alisnya naik sebelah." 
Masa harus jadi videografer dulu baru boleh bilang "Bang, videonya goyang banget saya pusing."
Masa harus jadi graphic designer dulu baru boleh bilang "Ini fontnya kalo dibesarin, pesannya pasti lebih kebaca."
.
.
Lain-lain.

Ini pendapatku, semua orang berhak berkomentar, apa saja. Tapi perlu diingat, sebaiknya jika anda mengomentari suatu postingan pastikan komentar anda berkaitan dengan yang dibahas dan sesuai kapasitas anda (jangan sampe kayak orang sok tau. sok iye, sok bijak, apalagi sok jadi pemuka agama). Kalau anda memang ahli dalam hal tersebut pun, sebaiknya anda membuka interaksi seperti diskusi. Bakal adem deh dunia ini.

The power of sosial media emang kuat banget, bahkan bangsa kita sekarang sedang goyah karna berita hoax. Memang gak semua orang yang percaya dengan berita-berita yang tersebar, tapi jika dibandingkan dengan orang yang percaya berita tanpa literature review dulu (hasegh!), angka orang yang termakan berita hoax di negara ini lebih banyak. Aku gak bisa ngasih angkanya, tapi ya sama-sama tau aja lah apa yang sedang terjadi.

Gini, kolom komentar ada itu dibuat guna menciptakan interaksi antara orang dengan yang membuat postingan (baik video, artikel, status, cuitan dll). Tentu yang seharusnya dikomentari itu terkait dengan apa yang diposting dong? Tapi terkadang yang komen ini agak lari pikirannya, yang diposting apa komennya apa, dan gak berguna pula. Ada yang "terpelatuqe", eh tubir deh.

Inti sarinya, tarik aja sendiri.

Love, peace and gaawwll~~

Topeng

"Kita hidup dizaman yang semua orang bisa memanipulasi kepribadian kita."

WHAT?! Memanipulasi kepribadian?
Aku gak tau kata apa yang cocok untuk definisi: everybody can manipulate their personality, they can show their personality as a sweet, good, smart, sexy, highfashion, hot, religious, strong, famous person etc. Yea, they can and they may do that.

Social media help us to make it happen. If we want to be a hot or sexy image, we can do post a hot picture of us. We can show a bitch face and skin as much as possible. If we want to be a good person, we can do post potongan ayat suci, share that we listen a religious song, and dress like we a religios person. We can be whoever we want, but listen. That's not you, that's somebody you want to be.

Actually, I do not care about them. Whatever they did, it's not my bussiness. But sometimes, I cant control my mouth to not to mocking at them. LIKE Y R U SO FAKE? Y R U ALWAYS ACTING LIKE U DO SOMETHING ACTUALLY U'RE NOT? Y R U DID THINGS THAT ACTUALLY NOT UR THINGS? Y R U HANGOUT WITH RICH PEOPLE, BUT ACTUALLY YOU CANT AFFORD IT? WHAIIIII PEOPLE WHAAAII? R U NEED ATTENTION? Yea, you want to be famous right? you want to a good, swag, highfashion etc? Oh, I see.

I'm just wondering guys. 

Just be you.

Rabu, 17 Mei 2017

Natural Language Processing - Information Extraction using NLTK

Mengekstraksi pengetahuan dari teks tak terstruktur dengan mengidentifikasi referensi entitas nama serta hubungan antar entitas Artikel ini dibuat untuk memenuhi tugas besar pada mata  kuliah pilihan Topik khusus - Data and Knowledge tahun ajaran 2016/2017. Seperti yang terlihat pada judul, artikel ini akan membahas Information Extraction yang mengekstraksi pengetahuan dari teks tak terstruktur dengan mengidentifikasi referensi entitas nama serta hubungan antar entitas (Named Entity Recognition). Yang kemudin keterhubungan antar entitas tersebut divisualisasikan ke dalam bentuk graf. 

Dalam artikel ini akan menyinggung text mining, karena dalam proses pengekstraksian text tak berstruktur tersebut sistem akan kesulitan jika langsung membaca begitu banyak kata, angka, simbol, serta singkatan. Nah, aktivitas text mining (preprocessing) inilah yang merubah data tak terstruktur menjadi data khusus, proses yang dilalui adalah:

  1. Tokenizing, tahap tokenizing / parsing adalah tahap pemotongan string input berdasarkan tiap kata yang menyusunnya. Selain itu, spasi digunakan untuk memisahkan antar kata tersebut.
  2. Stopwords, Stopword adalah kata-kata yang tidak deskriptif yang dapat dibuang dalam pendekatan bag-of-words. Contoh stopword adalah “yang”, “dan”, “di”, “dari” dan lain – lain. Pada tahapan ini masukkan ke sistem adalah kumpulan kata hasil dari proses tokenizing.
  3. Stemming, Stemming yang dilakukan pada tahapan dalam preprocessing ini adalah mentransformasi kata-kata yang terdapat dalam suatu cerita ke kata-kata akarnya (root word).
Setelah preprocessing selesai, barulah masuk ke Natural Language Processing (NLP) yang dalam bahasa indonesia disebut Pemrosesan Bahasa Alami yang merupakan kecerdasan buatan dan bahasa yang berkaitan dengan interaksi antara komputer dan bahasa alami manusia. Aktivitas yang dilakukan adalah:

  1. Part of speech tagging, sebuah sistem yang memberikan label kata secara otomatis pada suatu kalimat. Misalkan, ada kalimat "saya makan nasi" dan ada label KG=kata ganti, VV=kata kerja, NN=kata benda. Sistem akan menerima input berupa kalimat tersebut, outputnya adalah: saya/KG makan/VV nasi/NN
  2. Chunking, adalah apa yang ingin kita keluarkan dari chunk. Alasan mengapa dilakukan proses chunk adalah ketika sitem tidak hanya mengambil semua yang diinginkan, tetapi juga mengambil beberapa hal yang tidak diinginkan. Kita bisa menambahkan aturan chunker.
  3. Named Entity Recognition, berguna untuk segera mengetahui topik diskusi (dalam hal ini isu dalam artikel). Kita bisa menemukan hampir semua entitas yang bernama, bahkan kita bisa mencari yang spesifik. NLTK dapat mengenali entitas bernama yang umum, bahkan dapat mengenali lokasi, nama, jumlah uang, tanggal, dan lainnya.
And, that's it. Keenam langkah diatas yang akan dieksekusi dalam tugas ini. Disini saya menggunakan python, kenapa? Karena python multiplatform yang dapat dijalankan pada platform Windows, Linux/Unix, dan Mac OS X, dan juga library NLTK sudah tersedia. Langsung kita mulai tutorialnya, yang paling awal tentu kamu harus menyiapkan IDE/toolbox/compiler python dan disini saya menggunakan anaconda, kalian juga bisa menggunakan python



Saya akan menjelaskan secara bertahap, mulai dari preprocessing (tokenizing, stopwords dan stemming) lanjut tagging, chunking, NER dan paling akhir seluruhnya akan disatukan menjadi satu file code siap eksekusi.  Oh ya, kita juga harus menyiapkan data set kita berupa artikel dalam bentuk text. Inilah yang menjadi inputan sistem.


Import package






Preprocessing

  • Tokenizing



from nltk.tokenize import sent_tokenize, word_tokenize
EXAMPLE_TEXT = "Hello Mr. Smith, how are you doing today? The weather is great, and Python is awesome. The sky is pinkish-blue. You shouldn't eat cardboard."
print(sent_tokenize(EXAMPLE_TEXT))
print(word_tokenize(EXAMPLE_TEXT))

process_content()

Output
  • Stopwords



from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize

example_sent = "This is a sample sentence, showing off the stop words filtration."
stop_words = set(stopwords.words('english'))
word_tokens = word_tokenize(example_sent)
filtered_sentence = []
for w in word_tokens:
    if w not in stop_words:
        filtered_sentence.append(w)
print(word_tokens)
print(filtered_sentence)

process_content()

Output:

  • Stemming
from nltk.stem import PorterStemmer
from nltk.tokenize import sent_tokenize, word_tokenize

ps = PorterStemmer()
new_text = "It is important to by very pythonly while you are pythoning with python. All pythoners have pythoned poorly at least once."
tokenized = word_tokenize(new_text)
for w in tokenized:
    print(ps.stem(w))


Output:




Natural Language Processing

  • Part of speech (POS) tagging

import nltk
from nltk.stem import PorterStemmer
from nltk.tokenize import sent_tokenize, word_tokenize

new_text = "It is important to by very pythonly while you are pythoning with python. All pythoners have pythoned poorly at least once."
tokenized = word_tokenize(new_text)

def process_content():
 try:
  for w in tokenized:
   words = nltk.word_tokenize(w)
   tagged = nltk.pos_tag(words)
   print(tagged)
 except Exception as e:
  print(str(e))

process_content()

Output:



  • Chunking
import nltk
from nltk.corpus import state_union
from nltk.tokenize import sent_tokenize, word_tokenize

new_text = "The current President of United States is Donald Trump, replacing Barrack Obama."
tokenized = sent_tokenize(new_text)
def process_content():
    try:
        for i in tokenized:
            words = nltk.word_tokenize(i)
            tagged = nltk.pos_tag(words)
            chunkGram = r"""Chunk: {**+?}"""
            chunkParser = nltk.RegexpParser(chunkGram)
            chunked = chunkParser.parse(tagged)
            
            print(chunked)
            for subtree in chunked.subtrees(filter=lambda t: t.label() == 'Chunk'):
                print(subtree)
            chunked.draw()
    except Exception as e:
        print(str(e))

process_content()

Output:






  • Named Entity Recognition
import re
import nltk

string = "Tolong hubungi Budi dari IBM segera di nomor 021-7365423 atau 0213-73652411 atau melalui email john@ibm.co.id. Thanks,Yayok"

def ie_preprocess(document):
    sentences = nltk.sent_tokenize(document)
    sentences = [nltk.word_tokenize(sent) for sent in sentences]
    sentences = [nltk.pos_tag(sent) for sent in sentences]
    return sentences

def extract_phone_numbers(string):
 r = re.compile(r'(\d{3}[-\.\s]??\d{7}|\d{4}[-\.\s]??\d{7}|\d{3}[-\.\s]??\d{8}|\d{4}[-\.\s]??\d{8})')
 return r.findall(string)
 
def extract_email_addresses(string):
    r = re.compile(r'[\w\.-]+@[\w\.-]+')
    return r.findall(string)

def extract_names(document):
    names = []
    sentences = ie_preprocess(document)
    for tagged_sentence in sentences:
        for chunk in nltk.ne_chunk(tagged_sentence):
            if type(chunk) == nltk.tree.Tree:
                if chunk.label() == 'PERSON':
                    names.append(' '.join([c[0] for c in chunk]))
    return names

def extract_organizations(document):
    organizations = []
    sentences = ie_preprocess(document)
    for tagged_sentence in sentences:
        for chunk in nltk.ne_chunk(tagged_sentence):
            if type(chunk) == nltk.tree.Tree:
                if chunk.label() == 'ORGANIZATION':
                    organizations.append(' '.join([c[0] for c in chunk]))
    return organizations


numbers = extract_phone_numbers(string)
emails = extract_email_addresses(string)
names = extract_names(string)
organizations = extract_organizations(string)
print numbers
print emails
print names
print organizations

process_content()

Output:





Build graph

import networkx as nx
import matplotlib.pyplot as plt

def draw_graph(graph):
 # create directed networkx graph
 G=nx.Graph()
 
 # add edges
 G.add_edges_from(graph)
 # graph_pos = nx.shell_layout(G)
 # graph_pos = nx.spectral_layout(G)
 graph_pos = nx.spring_layout(G)
 # graph_pos = nx.random_layout(G)
 
 # draw nodes, edges and labels
 nx.draw_networkx_nodes(G, graph_pos, node_size=1000, node_color='blue', alpha=0.3)
 
 # we can now added edge thickness and edge color
 nx.draw_networkx_edges(G, graph_pos, width=2, alpha=0.3, edge_color='green')
 nx.draw_networkx_labels(G, graph_pos, font_size=12, font_family='sans-serif')
 
 edge_labels = {('Hambalang','Andi'): 1,('Hambalang','Wafid Muharram'): 1,('Andi','Andi Malarangeng'): 2,('Andi Malarangeng','Wafid Muharram'): 7,('Wafid Muharram', 'Andi'): 2}
 nx.draw_networkx_edge_labels(G, graph_pos, edge_labels=edge_labels)
 
 plt.show()

graph = [
        ('Hambalang','Andi'),('Hambalang','Wafid Muharram'),('Andi','Andi Malarangeng'),('Andi Malarangeng','Wafid Muharram'),('Wafid Muharram','Andi')
    ]
 
draw_graph(graph)

process_content()

Output:


Named Entity Recognition with data set


Topik yang saya angkat untuk tugas ini adalah berita mengenai Antasari Azhar dan Susilo Bambang Yudhoyono. Saya mengambil 10 artikel terkait dengan judul serta tanggal terbit yang berbeda-beda. Bagaimana hasilnya? Yuk, kita liat.



import regex as re
import nltk

def remove_non_ascii(text):
    return ''.join(i for i in text if ord(i) < 128)
    
#preprocessing
def ie_preprocess(document):
    sentences = nltk.sent_tokenize(document)
    sentences = [nltk.word_tokenize(sent) for sent in sentences]
    sentences = [nltk.pos_tag(sent) for sent in sentences]
    return sentences
#pengekstraksian nama dalam artikel
def extract_names(document):
    names = []
    sentences = ie_preprocess(document)
    for tagged_sentence in sentences:
        for chunk in nltk.ne_chunk(tagged_sentence):
            if type(chunk) == nltk.tree.Tree:
                if chunk.label() == 'PERSON':
                    names.append(' '.join([c[0] for c in chunk]))
    return names
entity = []
#Loop untuk read 10 artikel
for i in range(0, 9):
  file = open(str(i) + ".txt", "r")
  string = remove_non_ascii(file.read())
  names = extract_names(string)
  names = list(set(names))
  entity.append(names)

print(entity)

process_content()


disini

Output:

Setelah itu, copy output yang sudah didapat dan paste pada source code build graph. Silahkan lihat source code berikut, dan /*insert here*/ direplace dengan data yg dicopy tadi.


import networkx as nx
import matplotlib.pyplot as plt

def draw_graph(graph, label):
    # create directed networkx graph
    G = nx.Graph()

    # add edges
    G.add_edges_from(graph)
    graph_pos = nx.shell_layout(G)
    #graph_pos = nx.spectral_layout(G)
    #graph_pos = nx.spring_layout(G)
    #graph_pos = nx.random_layout(G)
    # draw nodes, edges and labels
    nx.draw_networkx_nodes(G, graph_pos, node_size=1000, node_color='blue', alpha=0.3)
    # we can now added edge thickness and edge color
    nx.draw_networkx_edges(G, graph_pos, width=2, alpha=0.3, edge_color='green')
    nx.draw_networkx_labels(G, graph_pos, font_size=12, font_family='sans-serif')
    nx.draw_networkx_edge_labels(G, graph_pos, edge_labels=label)
    plt.show() 
    
entity = [[/*insert here*/]]
graph = []
label = {}
temp = {}
for item in entity:
    for i in item:
        for j in item:
            if i != j:
                val = (i, j)
                if val in temp:
                    temp[val] = temp[val] + 1
                    if temp[val] > 1:
                        label[val] = temp[val]
                        graph.append(val)
                else:
                    temp[val] = 1

draw_graph(graph, label)

process_content()

Dan jangan lupa install software module "networkx" yang gunanya memanipulasi graf. Di step terakhir ini saya pakai anaconda promt saja untuk install networkx (hanya perlu mengetik "pip install networkx") dan run file diatas juga pakai anaconda promt (biar bisa dizoom).



Output:

Source code : https://github.com/nayadmk/Information_extraction

Referensi:


Senin, 20 Februari 2017

Tutorial membuat Foto Biasa Menjadi Polaroid Menggunakan Photoshop

1. Siapkan foto yang ingin di jadikan polaroid. Dan juga template polaroid. (Bisa download disini http://lured2stock.deviantart.com/art/Polaroid-3262470)

2. Gunakan Magic Want tool, klik isi template yang akan diisi foto.

3. Unhide layer 1 (foto), dan klik "add layer mask"

4. Hasilnya

5. Unlink layer dan layer masuk
  


6. Ke Hue/Saturation dan atur seperti dibawah. Dan jangan lupa klik kanan pada layer Hue/saturation dan klik create clipping mask (agar yang berubah warna hanya fotonya, bingkainya tidak). Dan opacity diturunkan hingga 45% (Biar jangan oranye banget).

7. Perhatikan yang di tanda panahi. Make new layer, dan arahkan layer nya ke Hue/Saturation dengan cara tekan alt+bawa kursor ke Hue/Saturation. Set foreground-nya warna putih-putih. Gunakan brush tool, set besar saja. Kemudia dibagian ujung kiri foto brush sedikit seperti gambar, agar terlihat benar-benar polaroid. Kalau terlalu terang, opacity-nya dikurangi.

8. Biar lebih realistis, kita bisa tabahkan tulisan di bagian bawah bingkainya (bagian yang kosong). Cukup pakai brush tool, set foreground-nya warna hitam, pilih model brush dan set size nya. Jangan lupa flow-nya 100%. Nah, tulis deh di layer baru diatas layer background.
9. Sebenarnya itu juga udah bisa, tapi biar tulisannya lebih realistis lagi hehe, kita akan buat tulisannya menyatu dengan tekstur template. Caranya adalah doublik klik pada layer tulisan (layer 3) dan set seperti ini.

AND THAT'S IT! Easy right?



P.S:
1. Saya bukan profesional di bidang design.
2. Kalau hasilnya menurut pembaca tidak memuaskan, kembali ke poin 1.



Kamis, 20 Oktober 2016

Materi Kuliah S1 Teknik Informatika


Halo!

Gue mahasiswa S1 Teknik Informatika - 2013, Telkom University. Yup! Sekarang sedang gue mulai merangkai kata-kata di proposal TA gue. Gue harap 2017 adalah tahun bahagia gue :') Di postingan ini gue mau berbagi materi sama visitor blog ini dari semester 1 sampe sekarang (akan tetep gue update kalo gue udah selesai). Silahkeun disedot.


Semester 1 : https://goo.gl/UaKfuh
Semester 2 : https://goo.gl/y1wpf6
Semester 3 : https://goo.gl/puOkIG
Semester 4 : https://goo.gl/hiqNfz
Semester 5 : https://goo.gl/ORJVGa
Semester 6 : Sorry, gue lupa back up dan udah ilang semua. But, akan gue usahain cari link alternatif.
Semester 7 serta Mata Kuliah Pilihan : Cooming soon!

Isi: 
Semester 1 : 
Kalkulus I, Pendidikan Agama Islam, Bahasa Indonesia, English I, Fisika I, Pengetahuan Lingkungan, Pengantar Teknik Informatika (PTI), Praktikum Pencarian Informasi (PCI) dan Praktikum Fisika Dasar I

Semester 2 : 
Dasar Pemrograman (DAP), English II, Fisika II, Internet Bussiness ICT, Kalkulus II, KPST, Praktikum DAP, Praktikum Fisika Dasar II

Semester 3 : 
Basis Data Relational, Logika Matematika, Algoritma Struktur Data (ASD) dan praktikum, Sistem Logika Digital (SLD, kalo di jurusan sebelah disebut Tekdig). Btw, sebenarnya ada Aljabar Linear dan praktikum basdat, tapi gue drop dan gue ambil di semester ganjil berikutnya. Download aja di semester 5.

Semester 4 : 
Matematika Diskrit, Rekayasa Perangkat Lunak, COA, Object Oriented Programming/Pemrograman Basis Objek dan praktikumnya, Probabilitas Statistika, Stadium General, dan geladi. Tapi sekarang geladi sama SG udah satukan sama matkul atas yang sejenis.

Semester 5 : 
Desain Algoritma dan Analisis (DAA), Jaringan Komputer (Jarkom) dan praktikum, Keprofesian, Sistem Informasi, Sistem Operasi, Teori Komputasi, Praktikum Basdat dan Alin.

Notes: 
- Isi setiap semesternya tidak begitu rapih, karna ini memang koleksi pribadi
- Semua folder materi di setiap semester mengikuti mata kuliah yang gue ambil di tiap semester gue. Ada yang ambil bawah, ambil atas dan ngulang. So, gak semua sesuai dengan keadaan lo sekarang dan kurikulum juga udah berubah. Well, good luck! :)

Kutipan dari Novel "Girl with a Pearl Earring" yang aku suka

Gue pernah baca novel, ini novel terjemahan karya Tracy Chevalier seorang novelis sejarah Amerika yang lahir di Washington DC pada 19 oktober 1962. Judul aslinya itu Girl with a Pearl Earring, dan diterjemahkan oleh ahli bahasa Kathleen SW (dari namanya sih orang luar negri nih, pasti diterjemahkan dalam bahasa inggris dulu lah ya. karena ini novel belanda wey) dengan judul Gadis dengan Anting-anting Mutiara.
Kiri: Sampul buku, Kanan: Pemeran dalam film

Menurut cerita cinta sebenarnya, kisah cinta klasik. Gue suka sama beberapa kutipan-kutipan yang ada di dalam novel ini. Gak bisa jelasin sih aku suka nya karena apa, mungkin karna bagus aja. ini nih
halaman 103
Aku menatap ke dalam matanya dan melihat kelembutan disana. Aku juga melihat apa yang selama ini kucemaskan.. harapan.
halaman 114
Kebaikan hati nya menimbulkan rasa pedih dihatiku. Seharusnya aku membalasnya, tapi aku tidak melakukan itu. Seharusnya aku merasa tersanjung, tapi nyatanya tidak. Aku tidak menginginkan perhatiannya.
halaman 123
Ia mengalihkan matanya yang keabuan ke arahku. Tatapannya dingin. Aku merasa duniaku berputar, seakan aku baru saja berdiri dengan sangat terlalu cepat.
halaman 128
Kini setelah aku punya waktu untuk berpikir, pikiranku menjadi kemana-mana. Aku menjadi seperti seekor anjing yang menjilati luka-lukanya dengan maksud untuk membersihkan, tapi malah memperparahnya.
halaman 147
Mungkin aku bahkan takkan begitu sedih andaikata yang ia pisahkan adalah kedua kepala kami dari pada tubuh-tubuh kami.
halaman 173
Aku selalu suliy membalas tatapannya, pandangannya seakan berusaha menembus diriku. Perhatiannya membuatku cemas.
halaman 180
Ia selalu sabar padaku saat aku sedang tak mau bicara, ketus, atau bersikap acuh tak acuh.
Dan finally, gue juga udah nonton filmnya. Euh! Bisa bayangin lah, lo udah baca novelnya terus nonton filmnya. Pasti feelnya itu dapet banget! Imajinasi gue tervisualisasi. Meski gak semua kayak yang gue imajinasikan.
This entry was posted in