Κανονικοποίηση ελληνικών κειμένων για αναζήτηση (SoundEx)

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
greekbytes
WebDev Moderator
Δημοσιεύσεις: 2438
Εγγραφή: 15 Νοέμ 2002 15:42
Τοποθεσία: Αθήνα
Επικοινωνία:

Κανονικοποίηση ελληνικών κειμένων για αναζήτηση (SoundEx)

Δημοσίευση από greekbytes » 20 Απρ 2005 11:58

Έχω κι εγώ παρόμοια προβλήματα.. Γίνεται κάνοντας αναζήτηση το ί να θεωρείται ίδιο με το ι ; (να μη δίνει σημασία στους τόνους)

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27626
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Κανονικοποίηση ελληνικών κειμένων για αναζήτηση (SoundEx)

Δημοσίευση από cordis » 20 Απρ 2005 23:46

θα πρέπει να γίνει κάποια κανονικοποίηση των συμβόλων για να έχεις αποτελέσματα... ακόμα θα πρέπει να γίνει κανονικοποίηση και στην ορθογραφία...

αν πεις ότι όλα τα lower(η,ή,υ,ύ,ι,ί,οι,οί,ει,εί) = ι και στις δύο πλευρές (βάση και front end) τότε με όποια ορθογραφία και να τα εισάγει κάποιος, και με όποια ορθογραφία τα αναζητήσει κάποιος θα έχουμε το επιθυμητό αποτέλεσμα.

εάν στο παραπάνω προσθέσουμε και το lower(ε,έ,αι,αί) = ε τότε έχουμε το απόλυτο για την λέξη "είναι"

το "είναι" κανονικοποιημένο "ινε"
οπότε με όποια πιθανή ορθογραφία και να το αναζητήσει κάποιος θα το βρει μιας και τα "ήνε", "ειναι", "εινε", "είνε", "οίνε" κτλ. κανονικοποιημένα βγάζουν πάντα το απλοποιημένο "ινε"...

αυτό φυσικά είναι πολύ επίπονο για να γίνετε real time... κάποια λύση με indexes των κανονικοποιημένων λέξεων να είναι κάτι πιο καλό.
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
greekbytes
WebDev Moderator
Δημοσιεύσεις: 2438
Εγγραφή: 15 Νοέμ 2002 15:42
Τοποθεσία: Αθήνα
Επικοινωνία:

Κανονικοποίηση ελληνικών κειμένων για αναζήτηση (SoundEx)

Δημοσίευση από greekbytes » 21 Απρ 2005 16:48

cordis έγραψε:θα πρέπει να γίνει κάποια κανονικοποίηση των συμβόλων για να έχεις αποτελέσματα... ακόμα θα πρέπει να γίνει κανονικοποίηση και στην ορθογραφία {...} αυτό φυσικά είναι πολύ επίπονο για να γίνετε real time... κάποια λύση με indexes των κανονικοποιημένων λέξεων να είναι κάτι πιο καλό.
Thanks για το info john!
και στις δύο πλευρές (βάση και front end)
Πως θα γίνει στη βάση? θα φτιάξω πχ έναν 2ο πίνακα όπου θα περνάνε τα δεδομένα στη μορφή που είπες (ινε αντί για είναι) και κάνοντας αναζήτηση για "είναι" (που από php θα γίνεται "ινε") θα ψάχνει στον 2ο πίνακα και θα εμφανίζει το αντίστοιχο αποτέλεσμα από τον 1ο (με τη σωστή ορθογραφία)? Πλησιάζω καθόλου ? :cry:

Άβαταρ μέλους
Cha0s
SysAdmin
Δημοσιεύσεις: 10242
Εγγραφή: 28 Ιούλ 2001 03:00

Κανονικοποίηση ελληνικών κειμένων για αναζήτηση (SoundEx)

Δημοσίευση από Cha0s » 21 Απρ 2005 17:59

cordis έγραψε:...
Από τα καλύτερα σου ποστ από τότε που σε γνώρισα! :kaloe: :P

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27626
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Κανονικοποίηση ελληνικών κειμένων για αναζήτηση (SoundEx)

Δημοσίευση από cordis » 21 Απρ 2005 18:43

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

phpbb_search_results - βοηθητικός πίνακας αποτελεσμάτων
phpbb_search_wordlist - λίστα όλων τον λέξεων που έχουν πάνω από 3 γράμματα
phpbb_search_wordmatch - η αντιστοιχία των id των λέξεων με id περιεχομένου (στην περίπτωση του phpBB με μηνύματα)

Εάν βάζαμε τις λέξεις εκεί κανονικοποιημένες και απλά κάναμε κανονικοποίηση real time (δεν μπορεί να γίνει κι αλλιώς ;) - κανονικοποιημένο "αλιοσ" :P - ) των όρων αναζήτησης θα είχαμε πολύ καλά αποτελέσματα... πιστεύω προς το τέλειο.. ;)

Η μεγαλύτερη δουλειά σε αυτό είναι το να κάνεις την τέλεια κανονικοποίηση και χωρίς να έχεις conflicts...

Το μεγαλύτερο πρόβλημα είναι με κάποιους συνδυασμούς που μπορεί να έχουν διαφορετικές ηχητικές αποδόσεις.

Αν πούμε ότι το
γ = γ
και το
γκ = g

τότε τι θα κάνουμε το γγ;
γγ = g ή γγ = γ ;

το "εγγενή" κανονικοποιημένο είναι "εγενι" και όχι "εgενι"
ενώ το "αγγλικά" είναι "αgλικα" και όχι "αγλικα"
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27626
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Κανονικοποίηση ελληνικών κειμένων για αναζήτηση (SoundEx)

Δημοσίευση από cordis » 21 Απρ 2005 18:43

Cha0s έγραψε:
cordis έγραψε:...
Από τα καλύτερα σου ποστ από τότε που σε γνώρισα! :kaloe: :P
Χρειάστηκαν 6 χρόνια, αλλά νομίζω ότι άξιζε.. :P :P :kaloe: :pint:
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Κανονικοποίηση ελληνικών κειμένων για αναζήτηση (SoundEx)

Δημοσίευση από Rapid-eraser » 21 Απρ 2005 19:03

koitakse ligo gia fulltext indexes kai collation rulles gia tnv basi (px mysql) tis perisoteres mou fulltext index livete afto to problima giati kaveis character much kai oxi binary safe elegxo.
ektos aftou mporeis va metatrepeis ta peidia tou elegxou apo multybyte se single byte aplopiovtas ta pavta.

opos eipe o cordis afto eivai poli epipovo gia realtime.
mporeis omos va xrisimopiseis eva kodika pou va aplopiei tous xaratkries pou mporouve va givouve ι kai ί me wild card priv kaveis tnv erebva. px to είναι va givei ε%να% n kati paromio oste va givete pio efkola n erebva
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

neverlastn
Δημοσιεύσεις: 32
Εγγραφή: 31 Μαρ 2005 14:47

Κανονικοποίηση ελληνικών κειμένων για αναζήτηση (SoundEx)

Δημοσίευση από neverlastn » 22 Απρ 2005 06:19

Έλα ρε greekbytes, τι γίνεσαι;

Αυτό που θέλεις είναι ένα σύστημα soundex. Ψάξε στο internet σχετικά και τουλάχιστον για τα Αγγλικά θα βρεις πάρα πολλά και θα πάρεις ιδέες. Θα βρείς και απαντήσεις για θέματα σχετικά με το γγ κ.τ.λ. Το θέμα είναι όμως μεγάλο γιατί κανονικά θα πρέπει να λαμβάνεις υπόψη μέχρι και διαφορετικές προφορές ανά περιοχή !!!!

Χρειάζεται όπωσδήποτε index. Σε όποι table έχεις text βάζεις και ένα επιπλεόν πεδίο (π.χ. soundex_name) και ψάχνεις σε αυτό. Σε κάθε καταχώρηση συμπληρώνεις και αυτό το πεδίο on-the-fly. Το είχα κάνει σε java κάποτε αυτό και είχε πολύ ενδιαφέρον. Σε εμένα δούλεβε super και το καλύτερο δούλεβε και με greenglish! Συγκεκριμένα έκανα map τους Ελληνικούς φθόγκους στο αγγλικό ηχο-λόγιο και είχε αρκετά καλά αποτελέσματα! Γενικά δουλεύει!

Πιό καλά αποτελέσματα θα βγάλεις κι αν βάλεις επιπλεόν και συντελεστή match σε κάθε λέξη (π.χ. κάνουν match ta 9 πρώτα γράμματα από τα 15 -> Q = 9/15) με αυτό τον τρόπο θα κάνεις sort τα αποτελέσματα ανάλογα με την ομοιότητά τους, και από ένα σημείο και κάτω θα τα πετάς. Αυτό όμως δεν νομίζω ότι γίνεται εύκολα με SQL χωρίς stored procedures κάποιου τύπου.

Γενικά το rating των matches με fuzzy τρόπο είναι ολόκληρη επιστήμη και υπάρχουν πάρα πολλά βιβλία για αυτά τα πράγματα.

CU around!

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27626
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Κανονικοποίηση ελληνικών κειμένων για αναζήτηση (SoundEx)

Δημοσίευση από cordis » 22 Απρ 2005 14:09

ωραίος! :P
με μια πρώτη ματιά βρήκα αυτήν την ενδιαφέρουσα σελίδα:
http://www.creativyst.com/Doc/Articles/ ... m#Overview
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Κανονικοποίηση ελληνικών κειμένων για αναζήτηση (SoundEx)

Δημοσίευση από Rapid-eraser » 22 Απρ 2005 14:18

mmmmmmm sounds gooooddd
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Άβαταρ μέλους
greekbytes
WebDev Moderator
Δημοσιεύσεις: 2438
Εγγραφή: 15 Νοέμ 2002 15:42
Τοποθεσία: Αθήνα
Επικοινωνία:

Κανονικοποίηση ελληνικών κειμένων για αναζήτηση (SoundEx)

Δημοσίευση από greekbytes » 22 Απρ 2005 16:31

Απίστευτα πράγματα μαθαίνει κανείς σ'αυτό το freestuff τελικά! :D
Είδα ότι υπάρχει από την php3 function soundex και στα σχόλια κάποιος δίνει μία παρόμοια που έκανε για Γαλλικά (έχει Γαλλικά σχόλια στον κώδικά του, το βράδυ θα τα systranέψω μπας και βγάλω άκρη) - link.
px to είναι va givei ε%να% n kati paromio oste va givete pio efkola n erebva
Αυτό που λέει ο rapid μου φαίνεται πιο εύκολο.. Γενικά πολύ επιστημονικά μου φαίνονται όλα αυτά, θα πειραματιστώ σχετικά με τους τόνους που ανέφερα στην αρχή και μετά βλέπουμε για τα υπόλοιπα :P
Ευχαριστώ και πάλι για τις πληροφορίες!

ΥΓ: neverlastn χρησιμοποιείς και κάποιο άλλο nick? :-? ("Έλα ρε greekbytes, τι γίνεσαι;") - στείλε PM αν είναι γιατί κόλλησα, μην βγαίνουμε offtopic εδώ :wink:
YΓ2: Ψάχνοντας στο google για "κανονικοποίηση php" βγαίνει πρώτο αυτό το topic :pint:

Άβαταρ μέλους
Cha0s
SysAdmin
Δημοσιεύσεις: 10242
Εγγραφή: 28 Ιούλ 2001 03:00

Κανονικοποίηση ελληνικών κειμένων για αναζήτηση (SoundEx)

Δημοσίευση από Cha0s » 25 Απρ 2005 15:56

Βασικά κανονικοποίηση βάσεων δεδομένων είναι.

Η PHP είναι ένα ενδιάμεσο εργαλείο για να χειριστείς (αν μπορείς να το πεις έτσι) τα δεδομένα.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης