def entities(data): response = {} text_array = data title = text_array.title() output = nltk.word_tokenize(title) for a in output: text = KBBI(a) # try: # text = KBBI(a) # except Exception as e: # return e text_dumps = json.dumps(text.serialisasi(), indent=2) text_loads = json.loads(text_dumps) A = json.dumps(text_loads["entri"], indent=2) B = json.loads(A) C = '' data = [] for i in B: C = json.dumps(i["makna"]) D = json.loads(C) print(i) for c in D: data.append({"arti": c["submakna"]}) #print(json.dumps(i["submakna"])) response.update({a: data}) return jsonify(response)
def aktual_objek(request, laman): kueri = request.param try: return laman[kueri] except KeyError: laman[kueri] = KBBI(kueri) return laman[kueri]
def ambilDariKBBI(kata): # ambil ke KBBI menggunakan try except # untuk mengetahui apakah kata # tsb ada dalam KBBI atau tidak try: # coba akses ke KBBI daring kata = KBBI(kata, auth) # jika tidak ada kesalahan # maka tersedia return kata.serialisasi() except TidakDitemukan as e: # kata tidak tersedia # kembalikan kepada user return False
def init(filepath): #sentence = docx2txt.process("C:/xampp/htdocs/stemming_naziefadriani/dokumen/Bab_21.docx") print(filepath) sentence = docx2txt.process(filepath) output = stemmer.stem(sentence) output = list(output.split(' ')) total_kata = len(output) # kalo pengen liat isi dari variabel output hilangkan pagar di bawah ini # output spell = SpellChecker(language=None) spell2 = SpellChecker() spell.word_frequency.load_text_file('./katadasar.txt') misspelled = spell.unknown(output) misspelled2 = spell2.unknown(output) koreksi = list() keliru = list() for word in misspelled: #print(spell.correction(word)) if spell2.correction(word) in misspelled2: keliru.append(spell2.correction(word)) #print('keliru') #print(spell2.correction(word)) koreksi.append(spell.correction(word)) #print (word) #print() #print(spell.candidates(word)) auth = AutentikasiKBBI("*****@*****.**", "oko123oko") # roh = KBBI("ikan", auth) masalah = list() masalah_baru = list() for k in koreksi: try: huk = KBBI(k, auth) except TidakDitemukan as e: huk = e.objek print(e) masalah_baru.append(str(e)) masalah.append(str(huk)) #print(huk) total_kata_dokumen = len(sentence) dibuang = total_kata_dokumen - total_kata total_masalah = len(masalah) total_kata_baku = total_kata - total_masalah return (total_kata_dokumen, total_kata, dibuang, total_kata_baku, total_masalah, masalah, masalah_baru)
def init(filepath): print(filepath) sentence = docx2txt.process(filepath) output = stemmer.stem(sentence) output = list(output.split(' ')) total_kata = len(output) spell = SpellChecker(language=None) spell2 = SpellChecker() # bahasa inggris spell.word_frequency.load_text_file('./katadasar.txt') misspelled = spell.unknown(output) misspelled2 = spell2.unknown(output) koreksi = list() keliru = list() masalah = list() masalah_baru = list() for word in misspelled: udah_diperiksa = False try: huk = KBBI(word, auth) except TidakDitemukan as e: huk = e.objek print(e) tampung_string = str(e) tampung_string = tampung_string.split(' tidak ditemukan') # masalah_baru.append(str(e)) masalah_baru.append(tampung_string[0]) masalah.append(str(huk)) udah_diperiksa = True if spell2.correction(word) in misspelled2: keliru.append(spell2.correction(word)) if not udah_diperiksa: koreksi.append(word) rekomendasi_koreksi = list() for kata in koreksi: rekomendasi_koreksi.append(spell.correction(kata)) print(koreksi) total_kata_dokumen = len(sentence) dibuang = total_kata_dokumen - total_kata total_masalah = len(misspelled) total_kata_baku = total_kata - total_masalah return (total_kata_dokumen, total_kata, dibuang, total_kata_baku, total_masalah, masalah, masalah_baru, koreksi, rekomendasi_koreksi)
async def kbbi(self, ctx, arg): if len(arg) > 0: try: data = KBBI(arg) await ctx.send("```Mencari Kata -> {}\n\n{}```".format( arg, data)) except: await ctx.send( "```Kata '{}' Tidak ditemukan dalam KBBI.```".format(arg)) else: await ctx.send("Kata tidak boleh Kosong.")
def find_kbbi(keyword, ex=True): try: entry = KBBI(keyword) except KBBI.TidakDitemukan as e: result = str(e) else: result = "Definisi {}:\n".format(keyword) if ex: result += '\n'.join(entry.arti_contoh) else: result += str(entry) return result
def search(): try: body = request.get_json() word = "" if "kata" not in body else body["kata"] if word == None or word == "": return response("kata harus di isi", 422) kbbiWord: KBBI = KBBI(word) return response(kbbiWord.serialisasi(), 200) except TidakDitemukan: return response("kata tidak ditemukan", 404) except: return response("terjadi kesalahan pada server", 500)
async def kbbi(client, message): await message.edit("`Processing...`") if message.reply_to_message: kata = message.reply_to_message.text else: args = message.text.split(None, 1) if len(args) == 1: await message.edit("Usage : kbbi (kata)") return kata = args[1] try: result = "KBBI Result of **{}** \n\n".format(kata) result += str(KBBI(kata)) await message.edit(result) except Exception as e: await message.edit(e)
def terikat_lah(): return KBBI("-lah")
def akhiran_kan(): return KBBI("-kan")
def awalan_me(): return KBBI("me-")
def bin(): return KBBI("bin")
def civitas_academica(): return KBBI("civitas academica")
async def kbbi(self, ctx, *q_kbbi): print('@@ Running kbbi command') q_kbbi = " ".join(q_kbbi) try: cari_kata = KBBI(q_kbbi) except KBBI.TidakDitemukan: print('@@ No results.') return await self.bot.say( 'Tidak dapat menemukan kata tersebut di KBBI') json_d = cari_kata.serialisasi()[q_kbbi] dataset = [] for v in json_d: build_data = {} build_data['nama'] = v['nama'] makna_tbl = [] cnth_tbl = [] for j in v['makna']: text = '' for z, _ in j['kelas'].items(): text += '*({z})* '.format(z=z) text += "; ".join(j['submakna']) makna_tbl.append(text) cnth_tbl.append("; ".join(j['contoh']).replace( '-- ', '- ').replace('--, ', '- ')) build_data['makna'] = "\n".join(makna_tbl) build_data['contoh'] = "\n".join(cnth_tbl) build_data['takbaku'] = ", ".join(v['bentuk_tidak_baku']) build_data['kata_dasar'] = ", ".join(v['kata_dasar']) dataset.append(build_data) def return_format(x): if isinstance(x, list): return [] elif isinstance(x, dict): return {} return '' def sanity_check(dataset): for n, d in enumerate(dataset): for k, v in d.items(): if v.isspace(): dataset[n][k] = return_format(v) return dataset dataset = sanity_check(dataset) first_run = True dataset_total = len(dataset) pos = 1 print(dataset) while True: if first_run: pos = 1 datap = dataset[pos - 1] embed = discord.Embed(title="KBBI: {}".format(q_kbbi), color=0x81e28d) embed.add_field(name=datap['nama'], value=datap['makna'], inline=False) embed.add_field(name='Contoh', value="Tidak ada" if not datap['contoh'] else datap['contoh'], inline=False) embed.add_field(name='Kata Dasar', value="Tidak ada" if not datap['kata_dasar'] else datap['kata_dasar'], inline=False) embed.add_field(name='Bentuk tak baku', value="Tidak ada" if not datap['takbaku'] else datap['takbaku'], inline=False) msg = await self.bot.say(embed=embed) first_run = False if dataset_total < 2: break elif pos == 1: to_react = ['⏩', '✅'] elif dataset_total == pos: to_react = ['⏪', '✅'] elif pos > 1 and pos < dataset_total: to_react = ['⏪', '⏩', '✅'] for react in to_react: await self.bot.add_reaction(msg, react) def check_react(reaction, user): e = str(reaction.emoji) return e.startswith(tuple(to_react)) res = await self.bot.wait_for_reaction(message=msg, user=ctx.message.author, timeout=20, check=check_react) if res is None: return await self.bot.clear_reactions(msg) elif '✅' in str(res.reaction.emoji): return await self.bot.clear_reactions(msg) elif '⏪' in str(res.reaction.emoji): await self.bot.clear_reactions(msg) pos -= 1 datap = dataset[pos - 1] embed = discord.Embed(title="KBBI: {}".format(q_kbbi), color=0x81e28d) embed.add_field(name=datap['nama'], value=datap['makna'], inline=False) embed.add_field(name='Contoh', value="Tidak ada" if not datap['contoh'] else datap['contoh'], inline=False) embed.add_field(name='Kata Dasar', value="Tidak ada" if not datap['kata_dasar'] else datap['kata_dasar'], inline=False) embed.add_field(name='Bentuk tak baku', value="Tidak ada" if not datap['takbaku'] else datap['takbaku'], inline=False) msg = await self.bot.edit_message(msg, embed=embed) elif '⏩' in str(res.reaction.emoji): await self.bot.clear_reactions(msg) pos += 1 datap = dataset[pos - 1] embed = discord.Embed(title="KBBI: {}".format(q_kbbi), color=0x81e28d) embed.add_field(name=datap['nama'], value=datap['makna'], inline=False) embed.add_field(name='Contoh', value="Tidak ada" if not datap['contoh'] else datap['contoh'], inline=False) embed.add_field(name='Kata Dasar', value="Tidak ada" if not datap['kata_dasar'] else datap['kata_dasar'], inline=False) embed.add_field(name='Bentuk tak baku', value="Tidak ada" if not datap['takbaku'] else datap['takbaku'], inline=False) msg = await self.bot.edit_message(msg, embed=embed)
def tampak(): return KBBI("tampak")
def keratabasa(): return KBBI("keratabasa")
def makin(): return KBBI("makin")
def semakin(): return KBBI("semakin")
def khayal(): return KBBI("khayal")
def lampir(): return KBBI("lampir")
def kan(): return KBBI("kan")
def menjadikan(): return KBBI("menjadikan")
def quo_vadis(): return KBBI("quo vadis?")