Proklamasi Kemerdekaan Indonesia dilaksanakan pada hari Jumat, 17 Agustus 1945 tahun Masehi, atau tanggal 17 Agustus 2605 menurut tahun Jepang, yang dibacakan oleh Soekarno dengan didampingi oleh Drs. Mohammad Hatta bertempat di sebuah rumah hibah dari Faradj bin Said bin Awadh Martak di Jalan Pegangsaan Timur No. 56, Jakarta Pusat.
Pada 16 Agustus 1945, Soekarno, Mohammad Hatta dan Ahmad Soebardjo berkumpul di rumah Laksamana Muda Maeda, untuk merumuskan teks Proklamasi Kemerdekaan Indonesia.
Naskah proklamasi merupakan tulisan tangan Soekarno yang kemudian menjadi presiden Indonesia pertama.Kemudian tulisan tangan tersebut diketik oleh Sayuti Melik dan segera ditandatangani oleh Soerkarno dan Moh. Hatta.
Mengutip dari situs Kementerian Pendidikan dan Kebudayaan (Kemdikbud), isi dari teks Proklamasi Kemerdekaan Indonesia, secara garis besar mengandung dua pernyataan penting, yakni:
Kalimat pertama dalam teks proklamasi merupakan pernyataan tentang kemauan Bangsa Indonesia untuk menentukan nasib sendiri.
Kalimat kedua dalam teks proklamasi merupakan pernyataan tentang pengalihan kekuasaan.
Pertama membersihkan memori pada komputer
rm(list=ls())
Memanggil library yang akan digunakan
library(tm)
## Loading required package: NLP
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library (readr)
library(tidytext)
options(scipen=999)
knitr::opts_chunk$set(echo=TRUE, warning=FALSE, message=FALSE)
Memanggil dokumen/naskah pidato
d<-data.frame(text=read_lines("pidato17agustus45.txt"))
d %>% filter(text != "") %>% mutate(text=as.character(text))->d
DT::datatable(d)
data(stop_words)
d %>% unnest_tokens(word, text) %>% anti_join(stop_words) -> words
words %>%
group_by(word) %>%
count() %>% arrange(-n) ->word_count
DT::datatable(word_count)
library(wordcloud)
#generate word cloud
set.seed(1234)
wordcloud(words = word_count$word, freq = word_count$n, min.freq = 3,
max.words=1000, random.order=FALSE, rot.per=0.20,
colors=brewer.pal(8, "Dark2"))
Berdasarkan jumlah kata-kata yang digunakan kata-kata “kita”, “saudara”, “indonesia”, “bangsa”, “dalam”, “dan”, “kemerdekaan” adalah yang sering muncul.
Tapi ini belum memiliki makna….
e<-read_lines("pidato17agustus45.txt")
corpus <- VCorpus(VectorSource(e),
readerControl = list(language = "en", readPlain, load = T))
corpus <- tm_map(corpus, removePunctuation) # menghilangkan tanda baca
corpus <- tm_map(corpus, content_transformer(tolower)) # merubah ke huruf kecil
# corpus <- tm_map(corpus, removeNumbers) # menghilangkan nomor
Anda bisa juga menghilangkan kata-kata yang tidak ingin digunakan karena dianggap kurang signifikan dalam melakukan text analytics.
Menggunakan perintah stopwords.
myStopwords <- c(stopwords('english'), "dalam", "dan","ini","itu","yang","tetapi", "di")
corpus <- tm_map(corpus, removeWords, myStopwords)
corpus_Clean <- tm_map(corpus, stripWhitespace)
library(wordcloud)
#generate word cloud
set.seed(1234)
wordcloud(words = corpus_Clean, min.freq = 3,
max.words=1000, random.order=FALSE, rot.per=0.20,
colors=brewer.pal(8, "Dark2"))
N-Grams adalah potongan sejumlah karakter dari suatu string tertentu atau potongan jumlah (n) kata dari suatu kalimat.
N-Grams merupakan dasar dari pengolahan kalimat. Dengan implementasi N-Grams sebuah aplikasi dapat dikembangkan untuk spelling correction, word breaking dan text summarization. Bahkan Microsoft dan Google menggunakan model ini untuk pengembangan web mereka.
N-Grams akan mengambil sejumlah kata yang kita butuhkan dari sebuah kalimat.
Seperti contohnya kalimat “Tanah airku Indonesia yang subur”, maka bentuk N-Grams dari kalimat tersebut adalah :
Unigram : Tanah, airku, Indonesia, yang, subur
Bigram : Tanah airku, airku Indonesia, Indonesia yang, yang subur
Trigram : Tanah airku Indonesia, airku Indonesia yang, Indonesia yang subur
Model probabilistik N-gram, merupakan model yang digunakan untuk memprediksi kata berikutnya yang mungkin dari kata N-1 sebelumnya. Model statistika dari urutan kata ini seringkali disebut juga sebagai model bahasa (language models / LMs).
Model estimasi seperti N-gram memberikan probabilitas kemungkinan pada kata berikutnya yang mungkin dapat digunakan untuk melakukan kemungkinan penggabungan pada keseluruhan kalimat. Model N-gram merupakan model yang paling penting dalam pemrosesan suara ataupun bahasa baik untuk memperkirakan probabilitas kata berikutnya maupun keseluruhan sequence.
[source: https://socs.binus.ac.id/2019/12/31/n-gram/]
library(RWeka)
par(mar = c(12, 12, 1, 1))
tokenizer1 <- function(x) NGramTokenizer(x, Weka_control(min = 1, max = 1))
uni_gram <- TermDocumentMatrix(corpus_Clean, control = list(tokenize = tokenizer1))
uni_gram <- as.data.frame(as.matrix(uni_gram))
uni_gram <- rowSums(uni_gram)
uni_gram <- sort(uni_gram, decreasing = T)
uni_gram_frame<-data.frame(uni_gram)
barplot(uni_gram[1:10], las = 2)
par(mar = c(12, 12, 1, 1))
tokenizer2 <- function(x) NGramTokenizer(x, Weka_control(min = 2, max = 2))
bi_gram <- TermDocumentMatrix(corpus_Clean, control = list(tokenize = tokenizer2))
bi_gram <- as.data.frame(as.matrix(bi_gram))
bi_gram <- rowSums(bi_gram)
bi_gram <- sort(bi_gram, decreasing = T)
barplot(bi_gram[1:10], horiz=TRUE,las = 2, )
par(mar = c(12, 12, 1, 1))
tokenizer3 <- function(x) NGramTokenizer(x, Weka_control(min = 3, max = 3))
tri_gram <- TermDocumentMatrix(corpus_Clean, control = list(tokenize = tokenizer3))
tri_gram <- as.data.frame(as.matrix(tri_gram))
tri_gram <- rowSums(tri_gram)
tri_gram <- sort(tri_gram, decreasing = T)
barplot(tri_gram[1:10], las = 1, horiz=TRUE)
paket dalam R yang mampu menganalisa dan melakukan kalkulasi language-agnostic tokenization, tagging, lemmatization dan dependency parsing dari data teks, yang merupakan hal terpenting dalam Natural Language Processing (NLP).
setwd("D:/R/textanalysis/udpipe")
pidato <- read.table(file="pidato17agustus45.txt", sep=";", quote="\"")
library(udpipe)
udmodel_indonesian <- udpipe_load_model(file = 'indonesian-gsd-ud-2.3-181115.udpipe')
s <- udpipe_annotate(udmodel_indonesian, pidato$V1)
x <- data.frame(s)
library(lattice)
stats <- txt_freq(x$upos)
stats$key <- factor(stats$key, levels = rev(stats$key))
barchart(key ~ freq, data = stats, col = "yellow",
main = "UPOS (Universal Parts of Speech)\n frequency of occurrence",
xlab = "Freq")
stats <- subset(x, upos %in% c("NOUN"))
stats <- txt_freq(stats$token)
stats$key <- factor(stats$key, levels = rev(stats$key))
barchart(key ~ freq, data = head(stats, 20), col = "cadetblue",
main = "Kata Benda yang sering muncul", xlab = "Freq")
stats <- subset(x, upos %in% c("ADJ"))
stats <- txt_freq(stats$token)
stats$key <- factor(stats$key, levels = rev(stats$key))
barchart(key ~ freq, data = head(stats, 20), col = "purple",
main = "Kata Sifat yang sering muncul", xlab = "Freq")
stats <- subset(x, upos %in% c("VERB"))
stats <- txt_freq(stats$token)
stats$key <- factor(stats$key, levels = rev(stats$key))
barchart(key ~ freq, data = head(stats, 20), col = "gold",
main = "Kata Kerja yang sering muncul", xlab = "Freq")
Rake (Rapid Automatic Keyword Extraction) adalah algoritma yang sangat efisien untuk mengidentifikasi kata kunci yang penting pada dokumen. RAKE bisa mengikuti konversi tata bahasa tertentu.
stats <- keywords_rake(x = x, term = "lemma", group = "doc_id",
relevant = x$upos %in% c("NOUN", "ADJ"))
stats$key <- factor(stats$keyword, levels = rev(stats$keyword))
barchart(key ~ rake, data = head(subset(stats, freq > 2), 20), col = "skyblue",
main = "Kata kunci yang teridentifikasi oleh RAKE",
xlab = "Rake")
Berdasarkan hasil analisis teks yang dilakukan, secara umum Bung Karno sering menggunakan kata “KITA”. Hal ini menunjukkan rasa kebersamaan, persatuan dan kesatuan yang sangat signifikan.
Kata-kata peting lainnya adalah : “kemerdekaan”,“bangsa”, “tanah air”, “merdeka”, “sendiri”, “ada” (eksistensi), “menyatakan”,“mencapai”, “menyusun”.
Tampak harapan terbesar dari para “founding fathers” dari kata-kata yang sering muncul. Tunggu analisa lanjutan mengenai hubungan antara kata dan korelasi antara satu kata dengan kata lainnya.
Semoga bermanfaat.