Esempio n. 1
0
def resume():
    print('start...')
    preprocessing = Preprocessing()
    vsm = VSM()
    svd = SVD()

    result = preprocessing.read_file()
    judul = preprocessing.read_title()
    sentences = preprocessing.split_sentence(result)

    sumarize = []
    original = []

    pre_judul = preprocessing.preprocessing(judul)

    index = 0
    path = os.path.abspath(os.path.join(os.path.dirname(__file__),
                                        'hasil_uji'))
    for s in sentences:
        listterm = []
        term_fn = []
        sentence_result = ''
        original_result = ''
        pre_result = preprocessing.preprocessing(s)
        listterm = vsm.list_term(pre_result)
        term_frequency = vsm.cal_tf(pre_result, listterm)
        term_frequency_judul = vsm.cal_tf_basic(pre_judul[index], listterm)
        term_frequency_normalize = vsm.cal_tf_normalize(term_frequency)
        term_frequency_normalize_judul = np.log(
            1 + np.asarray(term_frequency_judul))
        document_frequency = vsm.cal_df(pre_result, listterm)
        document_frequency_judul = vsm.cal_df(pre_judul, listterm)
        for idx, tfn in enumerate(term_frequency_normalize):
            term_fn.append(tfn.tolist())
        weight = vsm.cal_vsm(term_fn, document_frequency)
        weight_judul = vsm.cal_vsm_basic(term_frequency_normalize_judul,
                                         document_frequency_judul)
        index_sentence = svd.cal_svd(weight, weight_judul)
        for i in index_sentence:
            sentence_result += s[i] + ' '
        for sen in s:
            original_result += sen
        sumarize.append(sentence_result)
        original.append(original_result)
        f = open(path + "/berita-" + str(index) + ".txt", "w+")
        f.write(sentence_result)
        print(index)
        index += 1

    hasil_ringkasan = []
    for i in range(len(sumarize)):
        hasil_ringkasan.append({'ringkasan': sumarize[i], 'judul': judul[i]})
    try:
        mongo.db.ringkasan.insert_many(hasil_ringkasan)
    except Exception as e:
        print(e)
        Exception(e)

    return jsonify({"sumarize": sumarize, "original": original}), 200
Esempio n. 2
0
def get_hasil_uji():
    print('start...')
    preprocessing = Preprocessing()
    dataset = preprocessing.read_ringkas()
    hasil_sistem = preprocessing.read_hasil()
    kalimat_ringkas_dataset = preprocessing.split_sentence(dataset)
    kalimat_ringkas_hasil = preprocessing.split_sentence(hasil_sistem)
    akurasi = []
    hasil = []
    for i in range(len(dataset)):
        fn = 0
        fp = 0
        tp = len(kalimat_ringkas_dataset[i])

        for sentence in kalimat_ringkas_dataset[i]:
            if not (sentence in kalimat_ringkas_hasil[i]):
                fn += 1

        for sentence in kalimat_ringkas_hasil[i]:
            if not (sentence in kalimat_ringkas_dataset[i]):
                fp += 1

        precission = tp / (tp + fp)
        recall = tp / (tp + fn)

        f1 = 2 * ((precission * recall) / (precission + recall))

        hasil.append({
            "akurasi": f1,
            "system": hasil_sistem[i],
            "pakar": dataset[i],
            "precission": precission,
            "recall": recall
        })

        akurasi.append(f1)

    print(np.average(akurasi))
    print(np.max(akurasi))
    print(np.min(akurasi))

    return jsonify(hasil), 200