doc2vec on corpus

Kita coba analisis "ciri-ciri" dokumen hoax yang membedakan dengan dokumen fakta sebetulnya apa. Hipotesisnya dengan doc2vec dapat diekstrak fitur penciri (differentiating features) dari dokumen hoax.


In [1]:
import pandas as pd

Sebelumnya corpus yang sudah terkumpul dipisahkan secara manual ke dua file csv terpisah, hoax.csv dan facts.csv. Kali ini dicoba untuk membaca semua corpus secara terpadu dari satu file csv yang memuat dua kelompok dokumen hoax dan facts.


In [4]:
#fakta = pd.read_csv('hoax.csv')
#fakta.head()
corpus = pd.read_csv('corpus.csv')
corpus.head()


Out[4]:
corpus
0 Terungkapnya jaringan Saracen menjadi pemberit...
1 Isu ini dihembuskan pertama kali oleh pemilik ...
2 Pesan berantai di media sosial dan grup komuni...
3 Dalam sepekan terakhir, beredar foto dan video...
4 "Hati-hati mengambil tisu di toilet umum! Tolo...

In [96]:
'''
dataframe[dataframe.column == value] will filter a dataframe based on row that fulfill criteria
dataframe.iloc[row_start:row_end, col_start:col_end] filters a dataframe using slicing method
'''
corpus_hoax = corpus[corpus.Label == 'hoax'].iloc[:, 0:2]
corpus_facts = corpus[corpus.Label == 'fact'].iloc[:, 0:2]
corpus_hoax.head()


Out[96]:
Judul Isi
64 PNS Bantul Ditangkap Terkait Sindikat Saracen Terungkapnya jaringan Saracen menjadi pemberit...
65 Kabar Singapore Airlines Terbakar di Changi Isu ini dihembuskan pertama kali oleh pemilik ...
66 Kabut di Yogya Imbas Aktivitas Merapi Pesan berantai di media sosial dan grup komuni...
67 Heboh Suhu Panas Ekstrem di Kuwait Bikin Pohon... Dalam sepekan terakhir, beredar foto dan video...
68 Beredar Foto Jarum Suntik 'Penular' HIV-AIDS d... "Hati-hati mengambil tisu di toilet umum! Tolo...

In [97]:
corpus_hoax.shape


Out[97]:
(55, 2)

In [98]:
corpus_facts.shape


Out[98]:
(64, 2)

In [8]:
for isi in corpus.iterrows():
    print(isi[0])


corpus    Terungkapnya jaringan Saracen menjadi pemberit...
Name: 0, dtype: object
corpus    Isu ini dihembuskan pertama kali oleh pemilik ...
Name: 1, dtype: object
corpus    Pesan berantai di media sosial dan grup komuni...
Name: 2, dtype: object
corpus    Dalam sepekan terakhir, beredar foto dan video...
Name: 3, dtype: object
corpus    "Hati-hati mengambil tisu di toilet umum! Tolo...
Name: 4, dtype: object
corpus    Ada seorang wanita meninggal mendadak dengan k...
Name: 5, dtype: object
corpus    Kabar ini berawal dari postingan pengguna Face...
Name: 6, dtype: object
corpus    Info dari teman. Teman komunitas saya baru ken...
Name: 7, dtype: object
corpus    Sebuah pesan berantai beredar di WhatsApp grup...
Name: 8, dtype: object
corpus    Dilaporkan sejumlah warga, sejak sepekan lalu ...
Name: 9, dtype: object
corpus    Muncul pesan berantai yang berisi informasi ak...
Name: 10, dtype: object
corpus    Laporan Kebakaran Mobil. Pada hari Sabtu tgl 1...
Name: 11, dtype: object
corpus    Sebuah pesan berantai beredar di aplikasi pesa...
Name: 12, dtype: object
corpus    Broadcast tersebut menyebut tawuran yang terja...
Name: 13, dtype: object
corpus    Broadcast itu menyebutkan, ada empat titik di ...
Name: 14, dtype: object
corpus    Sebuah pesan berisi peringatan kepada pengguna...
Name: 15, dtype: object
corpus    Beredar video di sosial media Twitter yang men...
Name: 16, dtype: object
corpus    Sebuah makam di Tempat Pemakaman Umum (TPU) Bu...
Name: 17, dtype: object
corpus    Sejak awal Juli, warganet dibuat iba oleh ceri...
Name: 18, dtype: object
corpus    Beredar broadcast di Facebook, Twitter, dan gr...
Name: 19, dtype: object
corpus    Pesan itu tersebar di beberapa waktu terakhir....
Name: 20, dtype: object
corpus    Tahun ini di Bulan Juli ada 5x senin, 5x selas...
Name: 21, dtype: object
corpus    Pada Jumat, 21 Desember 2012, Detikcom menurun...
Name: 22, dtype: object
corpus    Kalau anak demam, JANGAN tampal Cool Fever di ...
Name: 23, dtype: object
corpus    Maidany.com – Peristiwa penyerangan Israel ter...
Name: 24, dtype: object
corpus    Pendaftaran GRATIS !!! Open Recruitment Grab, ...
Name: 25, dtype: object
corpus    Perhatian… Perlu diketahui, baru menerima pesa...
Name: 26, dtype: object
corpus    Raja Keraton Ngayogyakarta yang juga Gubernur ...
Name: 27, dtype: object

In [29]:
headers = ["corpus"]
corp_h = pd.read_csv('faktahalf.csv', skipinitialspace=True, usecols = headers)
corp_h.head()


Out[29]:
corpus
0 Di tengah pemberitaan banjir di Pagarsih Bandu...
1 Foto Wayne McLaren, seorang mantan bintang ikl...
2 "Di Ukraina Jika Anggota DPR Ga Becus Langsung...
3 Beredar pesan berantai yang berisi informasi t...
4 Pesan berantai beredar melalui media sosial te...

In [31]:
print len(corp_h.corpus)


32

In [32]:
halfcorpus = open("halffakta.txt", 'w')
for i in range(0,len(corp_h.corpus)):
    halfcorpus.write(corp_h.corpus[i])
    halfcorpus.write("\n")
    i += 1

halfcorpus.close()

In [ ]:


In [ ]:


In [ ]: