pip install -U nltk
pip install Sastrawi
Selanjutnya kita diharuskan mengunduh paket tambahan dari modul NLTK ini dengan menjalankan kode dibawah.
import nltk
nltk.download()
#######################CODE:
from nltk.tokenize import sent_tokenize, word_tokenize
from nltk.corpus import stopwords
from nltk.stem import PorterStemmer
import nltk
import string
kalimat = "[MOJOK.co] Manfaat monitoring, singing dan jogging setiap pagi yang pertama adalah meredakan stres. Olahraga itu seperti kode bagi tubuh untuk memproduksi hormon endorfin, agen perangsang rasa bahagia. Dilakukan di pagi hari, ketika udara masih bersih, sejuk, jalanan lengang, gunung terlihat jelas di sebelah utara, manfaat jogging bisa kamu rasakan secara maksimal."
kalimat = kalimat.translate(str.maketrans('','',string.punctuation)).lower() #menghilangkan tanda baca
case_folding = kalimat.lower() #casefolding
tokens = nltk.tokenize.word_tokenize(case_folding) #list
#print(tokens)
kemunculan = nltk.FreqDist(tokens)
#print(kemunculan.most_common())
listStopword = set(stopwords.words('indonesian'))
st = PorterStemmer()
removed = []
stemmed = []
for t in tokens:
if t not in listStopword:
removed.append(t)
stemmed.append(st.stem(t)) #include STEMMING in English
#print(removed) #list
#print(stemmed) #list
kemunculan = nltk.FreqDist(stemmed)
print(kemunculan.most_common())
mydistinct = set(stemmed) #type SET
kemunculan = nltk.FreqDist(mydistinct)
print(kemunculan.most_common())
#print(mydistinct)
######################################Convert SET to List
listdata=[]
for letter in set(mydistinct):
listdata.append(letter)
print(listdata)
OUT:
[('manfaat', 2), ('jog', 2), ('pagi', 2), ('mojokco', 1), ('monitor', 1), ('sing', 1), ('meredakan', 1), ('stre', 1), ('olahraga', 1), ('kode', 1), ('tubuh', 1), ('memproduksi', 1), ('hormon', 1), ('endorfin', 1), ('agen', 1), ('perangsang', 1), ('bahagia', 1), ('udara', 1), ('bersih', 1), ('sejuk', 1), ('jalanan', 1), ('lengang', 1), ('gunung', 1), ('sebelah', 1), ('utara', 1), ('rasakan', 1), ('maksim', 1)] [('maksim', 1), ('bahagia', 1), ('hormon', 1), ('stre', 1), ('memproduksi', 1), ('utara', 1), ('rasakan', 1), ('kode', 1), ('manfaat', 1), ('gunung', 1), ('endorfin', 1), ('jog', 1), ('lengang', 1), ('mojokco', 1), ('tubuh', 1), ('perangsang', 1), ('sejuk', 1), ('meredakan', 1), ('udara', 1), ('agen', 1), ('bersih', 1), ('jalanan', 1), ('sing', 1), ('olahraga', 1), ('sebelah', 1), ('pagi', 1), ('monitor', 1)] ['maksim', 'bahagia', 'hormon', 'mojokco', 'stre', 'memproduksi', 'utara', 'tubuh', 'rasakan', 'kode', 'perangsang', 'manfaat', 'gunung', 'sejuk', 'meredakan', 'udara', 'agen', 'bersih', 'jalanan', 'sing', 'olahraga', 'sebelah', 'endorfin', 'jog', 'pagi', 'monitor', 'lengang']
++++++++++++
STEMMING INDONESIA
from nltk.tokenize import sent_tokenize, word_tokenize
from nltk.corpus import stopwords
from nltk.stem import PorterStemmer
from Sastrawi.Stemmer.StemmerFactory import StemmerFactory
import nltk
import string
#sastrawi
factory = StemmerFactory()
stemmerIndonesia = factory.create_stemmer()
kalimat = "[MOJOK.co] Manfaat monitoring, singing dan jogging setiap pagi yang pertama adalah meredakan stres. Olahraga itu seperti kode bagi tubuh untuk memproduksi hormon endorfin, agen perangsang rasa bahagia. Dilakukan di pagi hari, ketika udara masih bersih, sejuk, jalanan lengang, gunung terlihat jelas di sebelah utara, manfaat jogging bisa kamu rasakan secara maksimal."
kalimat = kalimat.translate(str.maketrans('','',string.punctuation)).lower() #menghilangkan tanda baca
case_folding = kalimat.lower() #casefolding
tokens = nltk.tokenize.word_tokenize(case_folding) #list
#print(tokens)
kemunculan = nltk.FreqDist(tokens)
#print(kemunculan.most_common())
listStopword = set(stopwords.words('indonesian'))
stemmerEnglish = PorterStemmer()
removed = []
stemmed = []
for t in tokens:
if t not in listStopword:
removed.append(t)
t2=stemmerEnglish.stem(t) #Stem in English
t3=stemmerIndonesia.stem(t2) #Stem in sastrawi
stemmed.append(t3)
#print(removed) #list
#print(stemmed) #list
kemunculan = nltk.FreqDist(stemmed)
print(kemunculan.most_common())
mydistinct = set(stemmed) #type SET
kemunculan = nltk.FreqDist(mydistinct)
print(kemunculan.most_common())
#print(mydistinct)
#####################################stemming
listdata=[]
for letter in set(mydistinct):#Convert SET to List
listdata.append(letter)
print(listdata)
out
[('manfaat', 2), ('jog', 2), ('pagi', 2), ('mojokco', 1), ('monitor', 1), ('sing', 1), ('reda', 1), ('stre', 1), ('olahraga', 1), ('kode', 1), ('tubuh', 1), ('produksi', 1), ('hormon', 1), ('endorfin', 1), ('agen', 1), ('rangsang', 1), ('bahagia', 1), ('udara', 1), ('bersih', 1), ('sejuk', 1), ('jalan', 1), ('lengang', 1), ('gunung', 1), ('belah', 1), ('utara', 1), ('rasa', 1), ('maksim', 1)] [('maksim', 1), ('bahagia', 1), ('hormon', 1), ('stre', 1), ('utara', 1), ('kode', 1), ('manfaat', 1), ('gunung', 1), ('reda', 1), ('endorfin', 1), ('jog', 1), ('lengang', 1), ('rangsang', 1), ('jalan', 1), ('mojokco', 1), ('tubuh', 1), ('belah', 1), ('sejuk', 1), ('udara', 1), ('bersih', 1), ('agen', 1), ('sing', 1), ('produksi', 1), ('rasa', 1), ('olahraga', 1), ('pagi', 1), ('monitor', 1)] ['maksim', 'jalan', 'bahagia', 'hormon', 'mojokco', 'stre', 'tubuh', 'utara', 'belah', 'kode', 'manfaat', 'gunung', 'sejuk', 'udara', 'reda', 'bersih', 'agen', 'sing', 'produksi', 'rasa', 'olahraga', 'endorfin', 'jog', 'pagi', 'monitor', 'lengang', 'rangsang']
Reff: https://github.com/sastrawi/sastrawi
Tidak ada komentar:
Posting Komentar