Skip to content

biepansiri01/CoopProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CONTENT CLASSIFICATION MODULE FOR MULTIPLE PAGE DOCUMENT

ปัญญาประดิษฐ์เพื่อการคัดแยกเนื้อหาจากเอกสารที่มีหลายหน้า

project นี้เป็น project ที่เกิดจากการทำใหม่จาก project สหกิจศึกษาเนื่องจากปัญหาของ windows update ที่ทำให้ไฟล์บางส่วนนั้นหายไป

สามารถดูเล่มรายงานโปรเจคสหกิจก่อนที่จะทำโปรเจคนี้ใหม่ได้ที่ : Link to Google Drive

ที่มา

ไฟล์แนบที่มาพร้อมอีเมล์สมัครงานนั้นมักจะประกอบไปด้วย resume transcript และใบเซอร์ โดยทั้ง 3 อย่างนี้มีรูปแบบที่แตกต่างกัน การใช้คนมาคัดแยกอาจเป็นเรื่องง่าย

แต่ถ้าอีเมล์สมัครงานนั้นถูกส่งมามากๆ ล่ะต้องเป็นปัญหาอย่างแน่นนอน ทาง MFEC ได้เล็งเห็นถึงปัญหานี้ จึงเป็นได้จัดทำ ProJec MDU (PROJECT MFEC DOCUMENT UNDERSTANDING) ขึ้น โดยการใช้ AI มาช่วยในการลดเวลาคัดแยกเอกสารเหล่านี้

ขอบเขต

  • สามารถแปลงไฟล์ใเอกสารห้สามารถรองรับการทำ image classification ได้
  • สามารถจัดเก็บไฟล์์เอกสารไฟล์นั้น หรือแต่ละหน้าของไฟล์นั้นที่ถูกทำนายผลแล้ว ตามประเภทที่ได้ถูกทำการทำนาย
  • ไฟล์เอกสารที่ถูกจัดเก็บสามารถนำไปทำการ OCR เพื่อสกัดข้อมูลจากเอกสาร

ตำแหน่่ง และลักษณะงานที่ได้รับมอบหมาย

  • ตำแหน่ง : data engineer
  • ลักษณะงาน : เป็นผู้พัฒนาระบบในการส่งข้อมูล จัดการกับข้อมูลก่อนที่จะเข้าสู่ระบบจัดเก็บข้อมูล และ ออกแบบวิธีจัดเก็บ เน้นความรู้ทางด้านการใช้เครื่องมือเกี่ยวกับ Big Data และการเลือกใช้ storage เพื่อการจัดเก็บข้อมูล

หลักการทำงานทำงานของโมดูลนี้

คำแนะนำ

ควรมีการสร้าง Directory Tree ตามนี้ก่อนเพื่อนรองรับการจัดเก็บไฟล์ในโมดูลนี้

DirTree

ชื่อโฟลเดอร์ คำอธิบาย
DocDirectory เป็นโฟลเดอร์แม่ในการจัดเก็บกระบวนการและจัดเก็บเอกสารภายใน
predictedfile เป็นไฟล์เดอร์ที่รองรับเอกสารที่ถูกทำนายผลแล้วและจัดเก็บเอกสารต้นฉบับด้วย
TMPfile เป็นโฟล์เดอร์จัดเก็บไฟล์ชั่วคราวมี 4 โฟลเดอร์ย่อยได้แก่

convertedJPG เป็นโฟลเดอร์ที่จัดเก็บไฟล์เป็น JPG

convertedPDF เป็นโฟลเดอร์ที่จัดเก็บไฟล์เป็น PDF

docclass โฟลเดอร์จัดเก็บ เอกสารหน้าที่ถูกทำนายแล้วตามโฟลเดอร์ชื่อ class

splitedPDF จัดเก็บเอกสาร PDF ที่มีหลายหน้าโดยจะแบ่งหน้าและจัดเก็บในนี้

Pipeline

การคัดแยกเอกสารนั้นจำเป็นต้องใช้โมเดลจากการทำ image classification และทำการนำไปทำการ ocr จึงจำเป็นต้องแปลงไฟล์เป็น 2 แบบ คือ ไฟล์ .jpg และ .pdf โดยหลักการแปลงไฟล์ จะทำการแปลงไฟล์ที่นำเข้ามาเป็น 2 ประเภทตามที่บอกไว้ในข้างต้น โดยเงื่อนไขไฟล์ที่นำเข้าจะประกอบไปด้วย

  • ไฟล์ .pdf จะทำการแบ่งหน้า ให้แต่หน้าเป็นไฟล์เดี่ยว แล้วจัดเก็บที่ /splitedPDF แล้วแบ่งแต่ละหน้าเป็น .jpg

  • ไฟล์ .doc/.docx จะแปลงไฟล์ให้เป็น .pdf ก่อน แล้วจัดเก็บที่ จากนั้นก็นำไฟล์ .pdf ที่ได้มานั้นเข้ากระบวนการเดียวกับ ไฟล์ .pdf

  • ไฟล์ รูปภาพ จะแปลงเป็นไฟล์ .pdf และ .jpg

  • ไฟล์อื่นๆ จะไม่เข้า process

โดยไฟล์ .pdf และ .jpg ที่หน้าเดียวกันจะมีชื่อเหมือนกัน ต่อมาจะนำไฟล์ .jpg แต่ละหน้าที่ได้มาทำนายผลว่าเป็นเอกสาร class อะไรผ่านการทำ image classification เมื่อได้ชื่อ class เอกสารหน้านั้นแล้วก็ทำการจัดเก็บไฟล์ .pdf ชื่อเดียวกันตามประเภทของเอกสารหน้านั้นที่ได้ทำนายออกมา เมื่อเอกสารที่ถูกทำนายออกมาอยู่ใน class เดียวกันหลายหน้าก็จะรวมกันเป็นไฟล์เดียวกัน

pipeline

ปัญหาที่เกิดขึ้น

ในการทำ image classification นั้นมีปัญหาที่ไฟล์ที่มี text จำนวนมากในเอกสารถูกทำนายเป็น resume เป็นส่วนใหญ่ ในความคิดเห็นส่วนตัวนั้นคิดว่าควรใช้การทำ text classification เข้ามาเข้าช่วยเนื่องจากเอกสารหลายๆ ใบในแต่ละประเภทมี text ที่แตกต่างกัน

requirement module

  • Anaconda.Navigator
https://www.anaconda.com/
  • PyTorch
conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch
  • pathlib
pip install pathlib
  • pdf2image
pip install pdf2image
  • poppler
conda install -c conda-forge poppler
  • PyPDF2
pip install PyPDF2
  • Pillow
pip install Pillow

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors