Difference between revisions of "NLTK: membuang kata penghubung yang tidak bermakna"

From OnnoWiki
Jump to navigation Jump to search
Line 35: Line 35:
 
   
 
   
 
  words = re.findall(r'\w+', open(infile).read().lower())
 
  words = re.findall(r'\w+', open(infile).read().lower())
  wordcommon = Counter(words).most_common(300)
+
  wordcommon = Counter(words).most_common(400)  
  print wordcommon
+
   
 +
for word, val in wordcommon:
 +
    if hanya_huruf(word) and len(word)>1 and word!='Iing' :
 +
        word = word.strip(string.punctuation).lower()
 +
        if word not in nltk.corpus.stopwords.words('english'):
 +
          if word not in nltk.corpus.stopwords.words('indonesia'):
 +
              print word
  
 
cara pemakaian
 
cara pemakaian
  
 
  python cari-stopwords-common.py -i hasiltwitseach.txt
 
  python cari-stopwords-common.py -i hasiltwitseach.txt
 
hasilnya kira-kira
 
 
[('ahok', 18443), ('https', 13710), ('t', 13361), ('co', 13041), ('rt', 11634), ('dan', 3224), ('yg', 2907), ('ini', 2400),
 
('ma', 2328), ('ruf', 2220), ('di', 2074), ('amin', 2057), ('kh', 1976), ('nu', 1972), ('yang', 1861), ('ulil', 1734),
 
('tak', 1301), ('pak', 1219), ('warga', 1126), ('akan', 1122), ('jangan', 1112), ('tidak', 1088), ('saya', 1069), ('mui', 1059),
 
('maf', 1046), ('ke', 1036), ('agama', 1033), ......... dst ............
 
  
 
edit hasil-nya, buang kata yang penting.
 
edit hasil-nya, buang kata yang penting.

Revision as of 10:11, 5 February 2017

Kata penghubung yang tidak bermakna, seperti,

yang, ke, dari, hello, apa, mau, .....

bisa dibuang menggunakan cara

  • print kata 300 ranking teratas yang banyak dipakai
  • edit buang kata yang bermakna
  • sisa kata yang tidak bermakna di edit dari outputnya

script python-nya adalah

import os,nltk,os.path,re,string
import argparse
from nltk.stem.porter import PorterStemmer
from collections import Counter
import re

ps=PorterStemmer()

def hanya_huruf( input ):
   r=re.match('^[a-zA-Z]+$', input)
   if r==None:
      return False
   else:
      return True

def parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument('-i', '--infile', default=, help='input filename')
    return parser.parse_args()

args = parse_args()
infile = args.infile

words = re.findall(r'\w+', open(infile).read().lower())
wordcommon = Counter(words).most_common(400) 

for word, val in wordcommon:
    if hanya_huruf(word) and len(word)>1 and word!='Iing' :
       word = word.strip(string.punctuation).lower()
       if word not in nltk.corpus.stopwords.words('english'):
          if word not in nltk.corpus.stopwords.words('indonesia'):
              print word

cara pemakaian

python cari-stopwords-common.py -i hasiltwitseach.txt

edit hasil-nya, buang kata yang penting. copykan hasilnya ke stopwords, misalnya

cat tambahan-stopwords.txt >> indonesia