Σχεδιασμός και Υλοποίηση εξειδικευμένου chatbot για διαδικτυακές πλατφόρμες
80
δομή της διεύθυνσής του. Για κάθε ερώτηση ζητάμε αρχικά έναν μεγαλύτερο αριθμό
υποψήφιων τμημάτων και στο τέλος κρατάμε τα έξι καλύτερα, αφού πρώτα φιλτράρουμε ώστε
να μην κυριαρχεί η ίδια πηγή και απορρίπτουμε ό,τι έχει πολύ χαμηλή ομοιότητα. Για να
βελτιωθεί η κάλυψη, η αναζήτηση δεν στηρίζεται μόνο στην αρχική διατύπωση αλλά και σε
παραλλαγές της ερώτησης. Τέλος, αν ακόμη και το καλύτερο εύρημα είναι πολύ αδύναμο, ένα
κατώφλι ασφαλείας σταματά τη διαδικασία και το σύστημα δηλώνει ότι δεν έχει επαρκή
στοιχεία, ενώ ειδικά για τα ερωτήματα που ζητούν τα πιο πρόσφατα νέα προβλέπεται και μια
εναλλακτική που επιστρέφει απλώς τις πιο πρόσφατες ανακοινώσεις.
Το τελικό σκορ κατάταξης κάθε υποψήφιου τμήματος προκύπτει ως σταθμισμένος
συνδυασμός της σημασιολογικής ομοιότητας και του βάρους επικαιρότητας, με έναν
συντελεστή που ρυθμίζει τη σχετική τους βαρύτητα. Για να αυξηθεί η ανάκληση, η αρχική
ερώτηση εμπλουτίζεται με μερικές παραλλαγές της, καθεμία από τις οποίες ανακτά το δικό της
σύνολο υποψηφίων, τα αποτελέσματα συνενώνονται και υποδιπλασιάζονται με βάση το
μοναδικό αναγνωριστικό κάθε τμήματος. Στη συνέχεια εφαρμόζεται ένα φίλτρο που περιορίζει
το πλήθος των τμημάτων που προέρχονται από την ίδια πηγή, ώστε η τελική απάντηση να μη
μονοπωλείται από ένα μόνο έγγραφο, και κρατούνται τα έξι καλύτερα. Αυτή η πολυβηματική
στρατηγική ανάκτησης, αν και πιο δαπανηρή υπολογιστικά, βελτίωσε αισθητά την κάλυψη σε
ερωτήσεις που διατυπώνονται με ασυνήθιστο λεξιλόγιο.
5.2.2 Οι έλεγχοι εισόδου
Όπως εξηγήσαμε στη σχεδίαση, τη θέση του αρχικού πράκτορα πήραν απλοί
ντετερμινιστικοί έλεγχοι, που τρέχουν στην αρχή κάθε ερώτησης χωρίς καμία κλήση σε
γλωσσικό μοντέλο. Η αναγνώριση της γλώσσας γίνεται εξετάζοντας αν η ερώτηση περιέχει
ελληνικούς χαρακτήρες, μια προσέγγιση που αποδείχθηκε αρκετά αξιόπιστη στην πράξη και
σχεδόν ακαριαία. Ένας δεύτερος έλεγχος αναγνωρίζει αν το ερώτημα ζητά κάτι πρόσφατο ή