Skip to content
This repository was archived by the owner on Aug 9, 2024. It is now read-only.

Commit e4b6360

Browse files
committed
Merge branch 'kenrick95-master'
2 parents 4c687f6 + a21d59d commit e4b6360

File tree

3 files changed

+143
-2
lines changed

3 files changed

+143
-2
lines changed

README.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,11 +101,11 @@ system. These are for ``scipy`` and ``numpy``.
101101

102102
Linux Mint 17.1:
103103

104-
1. ``sudo apt-get install g++ gfortran liblapack-dev python3-dev myspell-pt myspell-fa myspell-en-au myspell-en-gb myspell-en-us myspell-en-za myspell-fr``
104+
1. ``sudo apt-get install g++ gfortran liblapack-dev python3-dev myspell-pt myspell-fa myspell-en-au myspell-en-gb myspell-en-us myspell-en-za myspell-fr aspell-id``
105105

106106
Ubuntu 14.04:
107107

108-
1. ``sudo apt-get install g++ gfortran liblapack-dev libopenblas-dev python3-dev myspell-pt myspell-fa myspell-en-au myspell-en-gb myspell-en-us myspell-en-za myspell-fr``
108+
1. ``sudo apt-get install g++ gfortran liblapack-dev libopenblas-dev python3-dev myspell-pt myspell-fa myspell-en-au myspell-en-gb myspell-en-us myspell-en-za myspell-fr aspell-id``
109109

110110
Authors
111111
=======

revscoring/languages/indonesian.py

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
import re
2+
import warnings
3+
4+
import enchant
5+
6+
from .language import Language, LanguageUtility
7+
8+
# STOPWORDS from https://code.google.com/p/stop-words/source/browse/trunk/stop-words/stop-words-collection-2014.02.24/stop-words/stop-words_indonesian_1_id.txt
9+
STOPWORDS = set([
10+
"ada", "adanya", "adalah", "adapun", "agak", "agaknya", "agar", "akan",
11+
"akankah", "akhirnya", "aku", "akulah", "amat", "amatlah", "anda",
12+
"andalah", "antar", "diantaranya", "antara", "antaranya", "diantara", "apa",
13+
"apaan", "mengapa", "apabila", "apakah", "apalagi", "apatah", "atau",
14+
"ataukah", "ataupun", "bagai", "bagaikan", "sebagai", "sebagainya",
15+
"bagaimana", "bagaimanapun", "sebagaimana", "bagaimanakah", "bagi",
16+
"bahkan", "bahwa", "bahwasanya", "sebaliknya", "banyak", "sebanyak",
17+
"beberapa", "seberapa", "begini", "beginian", "beginikah", "beginilah",
18+
"sebegini", "begitu", "begitukah", "begitulah", "begitupun", "sebegitu",
19+
"belum", "belumlah", "sebelum", "sebelumnya", "sebenarnya", "berapa",
20+
"berapakah", "berapalah", "berapapun", "betulkah", "sebetulnya", "biasa",
21+
"biasanya", "bila", "bilakah", "bisa", "bisakah", "sebisanya", "boleh",
22+
"bolehkah", "bolehlah", "buat", "bukan", "bukankah", "bukanlah", "bukannya",
23+
"cuma", "percuma", "dahulu", "dalam", "dan", "dapat", "dari", "daripada",
24+
"dekat", "demi", "demikian", "demikianlah", "sedemikian", "dengan", "depan",
25+
"di", "dia", "dialah", "dini", "diri", "dirinya", "terdiri", "dong", "dulu",
26+
"enggak", "enggaknya", "entah", "entahlah", "terhadap", "terhadapnya",
27+
"hal", "hampir", "hanya", "hanyalah", "harus", "haruslah", "harusnya",
28+
"seharusnya", "hendak", "hendaklah", "hendaknya", "hingga", "sehingga",
29+
"ia", "ialah", "ibarat", "ingin", "inginkah", "inginkan", "ini", "inikah",
30+
"inilah", "itu", "itukah", "itulah", "jangan", "jangankan", "janganlah",
31+
"jika", "jikalau", "juga", "justru", "kala", "kalau", "kalaulah",
32+
"kalaupun", "kalian", "kami", "kamilah", "kamu", "kamulah", "kan", "kapan",
33+
"kapankah", "kapanpun", "dikarenakan", "karena", "karenanya", "ke", "kecil",
34+
"kemudian", "kenapa", "kepada", "kepadanya", "ketika", "seketika",
35+
"khususnya", "kini", "kinilah", "kiranya", "sekiranya", "kita", "kitalah",
36+
"kok", "lagi", "lagian", "selagi", "lah", "lain", "lainnya", "melainkan",
37+
"selaku", "lalu", "melalui", "terlalu", "lama", "lamanya", "selama",
38+
"selama", "selamanya", "lebih", "terlebih", "bermacam", "macam", "semacam",
39+
"maka", "makanya", "makin", "malah", "malahan", "mampu", "mampukah", "mana",
40+
"manakala", "manalagi", "masih", "masihkah", "semasih", "masing", "mau",
41+
"maupun", "semaunya", "memang", "mereka", "merekalah", "meski", "meskipun",
42+
"semula", "mungkin", "mungkinkah", "nah", "namun", "nanti", "nantinya",
43+
"nyaris", "oleh", "olehnya", "seorang", "seseorang", "pada", "padanya",
44+
"padahal", "paling", "sepanjang", "pantas", "sepantasnya", "sepantasnyalah",
45+
"para", "pasti", "pastilah", "per", "pernah", "pula", "pun", "merupakan",
46+
"rupanya", "serupa", "saat", "saatnya", "sesaat", "saja", "sajalah",
47+
"saling", "bersama", "sama", "sesama", "sambil", "sampai", "sana", "sangat",
48+
"sangatlah", "saya", "sayalah", "se", "sebab", "sebabnya", "sebuah",
49+
"tersebut", "tersebutlah", "sedang", "sedangkan", "sedikit", "sedikitnya",
50+
"segala", "segalanya", "segera", "sesegera", "sejak", "sejenak", "sekali",
51+
"sekalian", "sekalipun", "sesekali", "sekaligus", "sekarang", "sekarang",
52+
"sekitar", "sekitarnya", "sela", "selain", "selalu", "seluruh",
53+
"seluruhnya", "semakin", "sementara", "sempat", "semua", "semuanya",
54+
"sendiri", "sendirinya", "seolah", "seperti", "sepertinya", "sering",
55+
"seringnya", "serta", "siapa", "siapakah", "siapapun", "disini",
56+
"disinilah", "sini", "sinilah", "sesuatu", "sesuatunya", "suatu",
57+
"sesudah", "sesudahnya", "sudah", "sudahkah", "sudahlah", "supaya",
58+
"tadi", "tadinya", "tak", "tanpa", "setelah", "telah", "tentang", "tentu",
59+
"tentulah", "tentunya", "tertentu", "seterusnya", "tapi", "tetapi",
60+
"setiap", "tiap", "setidaknya", "tidak", "tidakkah", "tidaklah", "toh",
61+
"waduh", "wah", "wahai", "sewaktu", "walau", "walaupun", "wong", "yaitu",
62+
"yakni", "yang"
63+
])
64+
BAD_REGEXES = [
65+
"aboput", "anjing",
66+
"bajingan", "bangsat", "bispak", "blo[o' ]*o?n", "brengse[kx]",
67+
"bishopsgarth", "bastards", "bencong", "babi"
68+
"cibai", "chalong", "coley",
69+
"diselama", "dishonest", "defraud", "defamatory",
70+
"escoduro",
71+
"fredrike", "fogh",
72+
"gauguin", "goblok", "ge[fs]tapo",
73+
"heroin", "husseins",
74+
"indon",
75+
"jambut", "janc[uo]k", "jellinek", "jellygamat",
76+
"keparat", "kontol",
77+
"lonte", "loked", "lvmh",
78+
"malingsia", "memek", "monyong", "munch",
79+
"netnapa", "ngentot", "nesbitt",
80+
"overdosed",
81+
"panadta", "palaji", "perek", "pukimak", "portugeuse", "paedophiles",
82+
"prostituton", "paedophile", "pedofil",
83+
"riyhad",
84+
"satanic", "satanists", "sempak", "sinting", "steinway", "sukhano",
85+
"terrorising", "terrorised", "terrorists", "taenjamras", "tetek", "titit",
86+
"toket", "tzcesar", "thailaland", "thaicia"
87+
]
88+
BAD_REGEX = re.compile("|".join(BAD_REGEXES))
89+
DICTIONARY = enchant.Dict("id")
90+
91+
def is_badword_process():
92+
def is_badword(word):
93+
return bool(BAD_REGEX.match(word.lower()))
94+
return is_badword
95+
is_badword = LanguageUtility("is_badword", is_badword_process, depends_on=[])
96+
97+
def is_stopword_process():
98+
def is_stopword(word):
99+
return word.lower() in STOPWORDS
100+
return is_stopword
101+
is_stopword = LanguageUtility("is_stopword", is_stopword_process, depends_on=[])
102+
103+
def is_misspelled_process():
104+
def is_misspelled(word):
105+
return not DICTIONARY.check(word)
106+
return is_misspelled
107+
is_misspelled = LanguageUtility("is_misspelled", is_misspelled_process,
108+
depends_on=[])
109+
110+
111+
indonesian = Language("revscoring.languages.indonesian",
112+
[is_badword, is_misspelled, is_stopword])
113+
"""
114+
Implements :class:`~revscoring.languages.language.Language` for Indonesian.
115+
:data:`~revscoring.languages.language.is_badword`,
116+
:data:`~revscoring.languages.language.is_misspelled`, and
117+
:data:`~revscoring.languages.language.is_stopword` are provided.
118+
"""
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
from nose.tools import eq_
2+
3+
from .. import language
4+
from ..indonesian import is_badword, is_misspelled, is_stopword
5+
6+
7+
def test_language():
8+
9+
assert is_badword()("gestapo")
10+
assert is_badword()("geftapo")
11+
assert is_badword()("Gestapo")
12+
assert not is_badword()("hat")
13+
eq_(hash(is_badword), hash(language.is_badword))
14+
15+
assert is_misspelled()("mungkinkahSAKJDHAKS")
16+
assert not is_misspelled()("mungkinkah")
17+
assert not is_misspelled()("Mungkinkah")
18+
eq_(hash(is_misspelled), hash(language.is_misspelled))
19+
20+
assert is_stopword()("mungkinkah")
21+
assert is_stopword()("siapa")
22+
assert not is_stopword()("belajar")
23+
eq_(hash(is_stopword), hash(language.is_stopword))

0 commit comments

Comments
 (0)