Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Έχουμε ένα πρόβλημα: Είναι ένα αρκετά μεγάλο πλήθος "σκαναρισμένων" εγγράφων με μερικές σελίδες κειμένου το καθένα (αρχεία PDF σχεδόν όλα). Η ψηφιοποίησή τους έχει γίνει χωρίς αναγνώριση κειμένου (OCR) και με πολύ χαμηλή ποιότητα αποτύπωσης του κειμένου στην εικόνα. Με άλλα λόγια, ένα tesseract δεν βγάζει άκρη από το περιεχόμενο του κειμένου.

Θέλουμε να τα ξεχωρίσουμε σύμφωνα με την γλώσσα στην οποία τα κείμενα των εγγράφων έχουν γραφεί. Π.χ. Ελληνικά - Αγγλικά. Για την ακρίβεια, θα ήθελα ένα κώδικα το οποίο να τρέχει σε Linux terminal, να παίρνει σαν είσοδο το αρχείο με το σκαναρισμένο κείμενο και να εξαγάγει μια εκτίμηση όπως "80% Ελληνικά - 10% Αγγλικά - 10% Γερμανικά". Αυτή την έξοδο μπορώ να την αξιοποιήσω.

Το πρόβλημα αυτό μου φαίνεται σαν αφορμή να ασχοληθώ για πρώτη φορά με Machine Learning, αλλά δεν σκαμπάζω τίποτα.

Πώς το εννοώ όμως; Έχω κάνει ένα διαχωρισμό με το μάτι, ανοίγοντας κάπου 200 έγγραφα, και αναρωτιέμαι εάν αυτά (και περισσότερα άμα χρειάζεται) μπορούν να γίνουν ένα είδος "training set". Αναρωτιέμαι αν θα μπορούσα να σκαρώσω κάτι σε python ή σε άλλη γλώσσα και ξεκινώντας με αυτά που έχω ξεχωρίσει, να περάσω και τα υπόλοιπα έγγραφα.

Επισημαίνω ότι ένας σκοπός είναι το να λύσω το πρόβλημά μου, αλλά και να δω τι μπορώ να μάθω από τις τεχνικές ML κάπως σαν χομπίστας. Προσέξατε ότι έχω προτίμηση σε Linux και τερματικό και άρα όσο το δυνατόν open source κώδικα. Απευθείας λύσεις online θα ήθελα να τις γνωρίζω, αλλά δεν θα ήθελα να τις αξιοποιήσω (δεν θέλω να βγάλω στον "αέρα" τα έγγραφα).

Αν έχετε την γνώμη ότι το προσεγγίζω λάθος το πράγμα και πρέπει να βρω άλλο τρόπο, ελεύθερα.

 

Δημοσ.

Υπάρχουν έτοιμες βιβλιοθήκες για language identification, δεν θα χρειαστεί να κάνεις train. 

Σε γενικές γραμμές η διαδικασία θα είναι κάπως έτσι: 

1) άνοιγμα των pdf και εξαγωγή περιεχομένου (OCR/tesseract - θα είναι προβληματικό λόγω ποιότητας)

2) πέρασμα του περιεχομένου σε κάποια βιβλιοθήκη ανίχνευσης γλώσσας 

 

 

Αν απλά θέλεις να κάνεις train ένα μοντέλο ML για εκπαιδευτικούς σκοπούς, ψάξε για έτοιμα data sets (π.χ. κειμένου) και documentation για την βιβλιοθήκη που θα χρησιμοποιήσεις (π.χ. TensorFlow -υπάρχουν πολλές). Τα δεδομένα που έχεις λογικά δεν είναι χρήσιμα για training, λόγω κακής ποιότητας. 

 

Δημοσ.

Για μενα δεν ειναι καλο προβλημα για να δοκιμασεις να μαθεις "τεχνικες ML" οπως λες. Στο διαταυτα, εντοπιζω καποια προβληματα στη ροη σκεψης σου:

1) Το tesseract 4 εχει engine με νευρωνικο δικτυο (LSTM). 

2) "Ενα tesseract δεν αρκει". Αν δεν αρκει λογω θορυβου στην εικονα, η λυση ειναι ενδεχομενως να "περασεις" πρωτα απο το opencv για denoising, μπορεις να δοκιμασεις και το EAST για να σου δωσει κουτια ενδιαφεροντος. 

https://pyimagesearch.com/2018/09/17/opencv-ocr-and-text-recognition-with-tesseract/

3) Γιατι πιστευεις οτι η ενδεδειγμενη εξοδος θα ειναι πιθανολογικη; Ενα κειμενο ελληνικων θα πρεπει να εχει 0% πιθανοτητες να κατηγοριοποιηθει λαθος, αφου αρκει η αναγνωριση εστω και μιας ελληνικης λεξης ωστε με σιγουρια να ξερεις οτι το εγγραφο ειναι ελληνικο. Το ιδιο και για γερμανικα, αγγλικα κλπ. Αφου παρεις το κειμενο απο το tesseract, με το spacy πχ μπορεις να αναγνωρισεις την γλωσσα αμεσα. 

Δημοσ.

Ναι αλλά τι γίνεται αν ένα κείμενο είναι δίγλωσσο ή είναι ελληνικό μεν αλλά περιέχει ορολογία στα αγγλικά; Εκεί ίσως έχει νόημα η ποσόστωση.

Δημοσ.
4 ώρες πριν, clampro είπε

Ναι αλλά τι γίνεται αν ένα κείμενο είναι δίγλωσσο ή είναι ελληνικό μεν αλλά περιέχει ορολογία στα αγγλικά; Εκεί ίσως έχει νόημα η ποσόστωση.

αυτο που λες διαφερει σαν σχεδιασμος:

- Το κειμενο εχει πιθανοτητα 50% να ειναι ελληνικο, 50% να ειναι αγγλικο

vs

- Το κειμενο περιεχει 50% αγγλικες λεξεις, 50% ελληνικες.

 

Δημοσ.
Στις 14/6/2022 στις 3:01 ΜΜ, n3a είπε

Υπάρχουν έτοιμες βιβλιοθήκες για language identification, δεν θα χρειαστεί να κάνεις train. 

Σε γενικές γραμμές η διαδικασία θα είναι κάπως έτσι: 

1) άνοιγμα των pdf και εξαγωγή περιεχομένου (OCR/tesseract - θα είναι προβληματικό λόγω ποιότητας)

2) πέρασμα του περιεχομένου σε κάποια βιβλιοθήκη ανίχνευσης γλώσσας 

Αν απλά θέλεις να κάνεις train ένα μοντέλο ML για εκπαιδευτικούς σκοπούς, ψάξε για έτοιμα data sets (π.χ. κειμένου) και documentation για την βιβλιοθήκη που θα χρησιμοποιήσεις (π.χ. TensorFlow -υπάρχουν πολλές). Τα δεδομένα που έχεις λογικά δεν είναι χρήσιμα για training, λόγω κακής ποιότητας. 

Θα κάνω την αναζήτηση με τους όρους language identification, επομένως, ή κάποιους άλλους; Μήπως υπάρχει κάποιο link εύκαιρο;

Όντως φαντάζομαι κι εγώ ένα σκριπτάκι που θα ανοίγει το .pdf και, παίρνοντας ένα δείγμα από τις σελίδες του, που θα τις βλέπει σαν εικόνες, θα αποφασίζει αν έχει κάποιο αναγνωρίσιμο κείμενο (δηλ. δεν είναι διαγράμματα ή φωτογραφίες) και μετά να προσπαθεί να αναγνωρίσει την γλώσσα (ή να βγάζει ποσοστά αναγνωρισιμότητας ανάμεσα σε διαφορετικές γλώσσες). Ένα OCR όντως κάνει καλά μια τέτοια δουλειά, αλλά επειδή δεν είναι όλα τα κείμενα εύληπτα, έλεγα μήπως μια ανίχνευση σελίδας "σαν ολότητα" είναι πιο επιτυχής. Στην τελευταία περίπτωση, κάποιο training θα πρέπει να γίνει.

Και φυσικά ο έμμεσος στόχος είναι να μπω στο νόημα. Από πού αρχίζω για να δουλέψω σε ML.

Επισκέπτης
Δημοσ.

Θα μπορούσες να τα μετατρέψεις σε εικόνες και να τα περάσεις από το Google Vision API που εξάγει κείμενο από φωτογραφίες. Το κόστος είναι $1/1000 φωτογραφίες. Περισσότερα εδω:

https://cloud.google.com/vision/pricing

Δημοσ.
Στις 14/6/2022 στις 10:59 ΜΜ, vs_skg είπε

αυτο που λες διαφερει σαν σχεδιασμος:

- Το κειμενο εχει πιθανοτητα 50% να ειναι ελληνικο, 50% να ειναι αγγλικο

vs

- Το κειμενο περιεχει 50% αγγλικες λεξεις, 50% ελληνικες.

 

Συμφωνώ. Απλά το ανέφερα γιατί από το αρχικό ποστ δεν μου ήταν ξεκάθαρο σε ποια από τις δύο περιπτώσεις αναφέρεται :)

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...