示例#1
0
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)
示例#2
0
def aktual_objek(request, laman):
    kueri = request.param
    try:
        return laman[kueri]
    except KeyError:
        laman[kueri] = KBBI(kueri)
        return laman[kueri]
示例#3
0
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
示例#4
0
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)
示例#5
0
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)
示例#6
0
 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.")
示例#7
0
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
示例#8
0
文件: main.py 项目: archisdi/kbbi-api
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)
示例#9
0
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)
示例#10
0
def terikat_lah():
    return KBBI("-lah")
示例#11
0
def akhiran_kan():
    return KBBI("-kan")
示例#12
0
def awalan_me():
    return KBBI("me-")
示例#13
0
def bin():
    return KBBI("bin")
示例#14
0
def civitas_academica():
    return KBBI("civitas academica")
示例#15
0
    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)
示例#16
0
def tampak():
    return KBBI("tampak")
示例#17
0
def keratabasa():
    return KBBI("keratabasa")
示例#18
0
def makin():
    return KBBI("makin")
示例#19
0
def semakin():
    return KBBI("semakin")
示例#20
0
def khayal():
    return KBBI("khayal")
示例#21
0
def lampir():
    return KBBI("lampir")
示例#22
0
def kan():
    return KBBI("kan")
示例#23
0
def menjadikan():
    return KBBI("menjadikan")
示例#24
0
def quo_vadis():
    return KBBI("quo vadis?")