---
# System prepended metadata

title: Progress Report Final Thesis (20 Mei 2021)

---

# Progress Report Final Thesis (20 Mei 2021)
###### tags: skripsi


**Feature name     : Seighneur Document Text Recognition (SDTR)
Version          : 1.0.1**

## Pendahuluan
Sebelum menjelaskan permasalahan yang saya alami pada feature ini, alangkah baiknya saya jelaskan terlebih dahulu alur garis besar program SDTR

### System Flowchart
![FLOWCHART SDTR](https://i.imgur.com/2zTdUOU.png)

**Langkah-langkah**
1. Pertama, upload file dokumen akta jual beli yang difoto ke backend sistem Seighneur.
2. Kedua, backend sistem Seighneur terima request dari frontend yang kemudian akan dilakukan optical character recognition dengan API Google Vision.
3. Ketiga, setelah berhasil ditransformasi file gambar kebentuk teks, hilangkan semua simbol-simbol yang terdapat pada teks tersebut (seperti titik, koma, double colon, asterisk dan sebagainya).
4. Keempat, lakukan spell checking. Hasil OCR Google Vision tidak 100% persis dengan dokumen asli sehingga perlu dilakukan revisi kata / kalimat.
5. Kelima, setelah semua teks dirapihkan dengan spell checking, dilakukan Named Entity Recognition / NER untuk mengidentifikasikan entitas berikut : identitas pembeli dan penjual, lokasi tanah, harga jual tanah dan luas tanah.
6. Keenam, setelah dapat identifikasi NER, lakukan penggambaran kotak koordinat yang didapatkan dari hasil Google Vision OCR.
7. Ketujuh, kirim kembali hasil gambar yang sudah digambarkan dengan kotak koordinate dan hasil NER ke user interface admin dashboard agar data tersebut bisa digunakan untuk disimpan ke database.
8. Selesai.

### Hasil Output Per Algorithm
Saya akan mendemonstrasikan hasil output yang dihasilkan dari setiap algoritma dibawah ini. Contoh gambar dokumen yang akan saya proses adalah halaman pertama fotokopi dokumen AJB versi tahun 1989

![ajb_1_1_fotokopi_lurus](https://i.imgur.com/tCuC4lq.jpg)

1. OCR Google Vision
    - Output JSON : [JSON](https://github.com/msulton55/seighneur-text-recognition/blob/development/v1.0.1/out/spell-checking/result_text_detection.json)
    - Output terminal : ![result text detection](https://i.imgur.com/aRMCjl2.png)

2. Symbol Filtering
    - Output JSON : [JSON](https://github.com/msulton55/seighneur-text-recognition/blob/development/v1.0.1/out/spell-checking/result_symbol_filtering.json)
    - Output terminal : ![result symbol filtering](https://i.imgur.com/uRedD0x.png)
 
3. Spell Checking 
    Tahap ini terdiri dari 4 sub tahapan :
    - [n-gram](https://en.wikipedia.org/wiki/N-gram) per karakter
        - Output JSON : [JSON](https://github.com/msulton55/seighneur-text-recognition/blob/development/v1.0.1/out/spell-checking/result_ngram_character.json)
        - Output terminal : ![result ngram character](https://i.imgur.com/aj1rJmj.png)

    - [n-gram](https://en.wikipedia.org/wiki/N-gram) per kata
        - Output JSON : [JSON](https://github.com/msulton55/seighneur-text-recognition/blob/development/v1.0.1/out/spell-checking/result_ngram_words.json)
        - Output terminal : ![result ngram words](https://i.imgur.com/46C4UHx.png)


    - menghilangkan lists saran tahap pertama
        - Output JSON : tidak ada
        - Output terminal : ![result remove lists suggestion phase 1](https://i.imgur.com/YiLhwUc.png)

    - menghilangkan lists saran berdasarkan format tahun dokumen (tahap kedua)
        - Output JSON : [JSON](https://github.com/msulton55/seighneur-text-recognition/blob/development/v1.0.1/out/spell-checking/result_final.json)
        - Output terminal : ![result final](https://i.imgur.com/LTR6h9U.png)


## Permasalahan
Saat ini, saya sudah menyelesaikan algoritma **spell checking** dan sedang membuat algoritma **named entity recognition** cuman ditemukan adanya stuck karena **algoritma yang dibuat dirasa sudah sangat berantakan dan tidak sesuai dengan pendekatan machine learning / deep learning**. 

**Algoritma spell checking pun sangat tidak memuaskan hasilnya dan perlu dikaji ulang serta dibuat ulang algoritmanya**. Pada versi 1.0.1, algoritma spell checking dikerjakan dengan **pendekatan statistical** yaitu menggunakan algoritma string similarity [Lavenstain Distance](https://en.wikipedia.org/wiki/Levenshtein_distance) dan [Sorensen Dice Coefficient](https://en.wikipedia.org/wiki/S%C3%B8rensen%E2%80%93Dice_coefficient) untuk menghitung tingkat kemiripan suatu kata dengan [kumpulan dictionary](https://github.com/msulton55/seighneur-text-recognition/blob/development/v1.0.1/resources/data/bahasa_dictionary.txt) yang sudah saya buat.

Untuk melihat detail kodingan dari program, bisa dilihat di [github](https://github.com/msulton55/seighneur-text-recognition/tree/development/v1.0.1/services)nya creator

## Kesimpulan
Untuk mencari solusi dari permasalahan ini, saya memerlukan bantuan seseorang atau beberapa orang yang dapat **memahami penggunaan algoritma untuk spell checking dengan pendekatan deep learning serta algoritma named entity recognition**. Saya sendiri sedang berusaha memahami deep learning ini.

Akhir kata, terima kasih.