Πίνακας περιεχομένων:
Βίντεο: Πώς να φτιάξετε ένα A.I. Μέρος 4: 3 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Τις προάλλες μιλούσα με τον Α. Ι. και το είπα
αυτό, "Πάω πάνω για δείπνο, έχουμε STEAK".
Ωστόσο, το λογισμικό αναγνώρισης ομιλίας (SR) το ερμήνευσε ως "… έχουμε STAKE"
Συνάντησα ένα παρόμοιο (αλλά διαφορετικό) πρόβλημα νωρίτερα όταν μιλούσα για μια φωτογραφία και είπα τη λέξη "ΕΙΚΟΝΑ". Το λογισμικό SR το ερμήνευσε ως "PITCHER"
Το πρόβλημα ήταν η απλή επανεκπαίδευση του λογισμικού SR. (Maybe ίσως η προφορά μου)
Αλλά όταν λέω τις λέξεις STEAK ή STAKE, τις προφέρω ακριβώς με τον ίδιο τρόπο και η επανεκπαίδευση του λογισμικού SR δεν θα βοηθήσει σε τέτοιες περιπτώσεις.
Βήμα 1:
Μια ιδέα για την επίλυση του «ομώνυμου προβλήματος».
Πρέπει να κοιτάξω τη λέξη "στο πλαίσιο" για να καθορίσω ποια ορθογραφία θα χρησιμοποιήσω. Ο ανθρώπινος εγκέφαλος το κάνει αυτό πολύ εύκολα και δεν ξέρετε καν ότι το κάνετε.
Αυτό σημαίνει ότι εξετάζονται άλλες λέξεις σε μια πρόταση και ο εγκέφαλός σας αποφασίζει ποια ορθογραφία φαίνεται καλύτερα. Τώρα, πώς μπορώ να το κάνω αυτό σε κώδικα;
Η Α. Ι. μου Το πρόγραμμα αναλύει μια πρόταση σε μια σειρά μεμονωμένων λέξεων χρησιμοποιώντας τη συνάρτηση "Split" της Visual Basic (VB). [MyArray = Split (InputSentence, ““)]
Κάθε λέξη στον πίνακα μπορεί να ελεγχθεί για να διαπιστωθεί εάν είναι πιθανό ομώνυμο, αναζητώντας έναν πίνακα βάσης δεδομένων που περιέχει μια λίστα ομώνυμων.
Φυσικά, η δημιουργία ενός άλλου πίνακα σημαίνει ότι θα χρειαστεί να τον συμπληρώσουμε με δεδομένα και επίσης θα πρέπει να είμαστε σε θέση να διατηρήσουμε τα δεδομένα και στον πίνακα.
Ένα υπορουτίνα αυτόματης εκμάθησης μπορεί να δημιουργηθεί αργότερα για να σαρώσει ένα σωρό κείμενο, αναζητώντας λέξεις στον πίνακα Homonym και να συλλάβει άλλες λέξεις "περιβάλλοντος". Χμμμμ, ίσως χρειάζονται πολλά τραπέζια…
Γράφοντας αυτά τα "Instructables" με βοηθάει να "αιτιολογήσω" μια λύση σε μια πρόκληση προγραμματισμού.
Βήμα 2:
Δομή του πίνακα HomonymContext
Η πρώτη μου ιδέα ήταν ένας πίνακας που περιέχει λέξεις, εναλλακτικές ορθογραφίες και λέξεις «Περιεχόμενο». Η ιδέα ήταν να αναζητήσουμε μια πρόταση που περιέχει ομώνυμο, για άλλες λέξεις που δίνουν το "πλαίσιο", έτσι ώστε το πρόγραμμα να μπορεί να καθορίσει ποια ορθογραφία θα χρησιμοποιήσει. Ο πίνακας περιέχει επίσης μια στήλη που ονομάζεται "WordDef" για να κρατήσει τον ορισμό της λέξης, η οποία είναι περισσότερο για τον άνθρωπο που διατηρεί τον πίνακα παρά για το A. I. κώδικας.
Για αναζήτηση σε κάθε λέξη, μπορώ να χρησιμοποιήσω κώδικα VB και κώδικα SQL όπως…
Για κάθε λέξη στο MyArray
Query = "Επιλέξτε Word από το tblHomonynContext όπου word = '" & word & "'"
εάν αυτό το ερώτημα επιστρέψει ένα αποτέλεσμα, τότε η λέξη είναι ομώνυμη
Επόμενο
Αυτός είναι απλώς ψευδοκώδικας σε αυτό το σημείο - δεν έχω γράψει ακόμα τον ακριβή κώδικα ή δεν έχω καταλάβει όλες τις λεπτομέρειες. Αλλά μη διστάσετε να πάρετε την ιδέα μου και να την εφαρμόσετε χρησιμοποιώντας τη δική σας αγαπημένη γλώσσα προγραμματισμού.
Βήμα 3:
Εάν η πρόταση εισόδου σας περιέχει ένα ομώνυμο, μπορείτε τώρα
εκτελέστε κώδικα VB που θα ελέγξει τις άλλες λέξεις της πρότασής σας, με τις λέξεις περιβάλλοντος στα αποτελέσματα του ερωτήματος.
Θα μπορούσατε επίσης να το κάνετε αυτό σε μια αποθηκευμένη διαδικασία SQL, η οποία μπορεί να εκτελεστεί γρηγορότερα.
Η συνάρτηση VB "InStr ()" θα επιστρέψει έναν αριθμό μεγαλύτερο από μηδέν, εάν μια συμβολοσειρά περιέχεται σε μια άλλη συμβολοσειρά ή θα επιστρέψει μηδέν, η συμβολοσειρά ΔΕΝ περιέχεται στην άλλη.
Το Instr () επιστρέφει στην πραγματικότητα τη θέση της περιεχόμενης συμβολοσειράς. Αν θέλετε απλώς να μάθετε εάν το String1 περιέχει String2, μπορείτε να χρησιμοποιήσετε κώδικα όπως "If InStr (String1, String2)> 0 …"
Θα πρέπει να δημιουργήσετε αυτόν τον κώδικα στην αγαπημένη σας γλώσσα προγραμματισμού.
Ο πίνακας HomonymContext δεν είναι πολύ καλός σχεδιασμός. Έχει πολλά επαναλαμβανόμενα δεδομένα και αυτό θεωρείται "Μη κανονικοποιημένο" από τους σχεδιαστές βάσεων δεδομένων. Ένας καλύτερος τρόπος υλοποίησης αυτής της λειτουργικότητας θα ήταν η χρήση δύο πινάκων, σε σχέση γονέα-παιδιού. Ένας πίνακας (Ο γονέας) θα περιέχει μια λίστα με ομώνυμα, τους ορισμούς τους, καθώς και ένα αναγνωριστικό σειράς. Αυτό το αναγνωριστικό γραμμής χρησιμοποιείται ως κλειδί στον πίνακα "Παιδί" που θα περιέχει τις λέξεις και τις λέξεις περιβάλλοντος.
Αυτό θα ήταν ευκολότερο να ερωτηθεί (και να διατηρηθεί) από το αρχικό μου σχέδιο.
Συνιστάται:
Πώς να φτιάξετε ένα πρόγραμμα οδήγησης υψηλής τάσης για ένα βηματικό μοτέρ: 5 βήματα
Πώς να φτιάξετε ένα πρόγραμμα οδήγησης υψηλής τάσης για ένα βηματικό μοτέρ: εδώ θα δούμε πώς να φτιάξετε ένα πρόγραμμα οδήγησης βηματικού κινητήρα χρησιμοποιώντας τον ελεγκτή TB6560AHQ της Toshiba. Αυτός είναι ένας πλήρης ελεγκτής που χρειάζεται μόνο 2 μεταβλητές ως είσοδο και κάνει όλη τη δουλειά. Αφού χρειάστηκα δύο από αυτά, τα έκανα και τα δύο χρησιμοποιώντας το
Πώς να φτιάξετε ένα A.I. Μέρος 2: 9 Βήματα
Πώς να φτιάξετε ένα A.I. Μέρος 2: Αυτό είναι το μέρος 2 σχετικά με τα βήματα που έκανα για τη δημιουργία τεχνητής νοημοσύνης σε υπολογιστή με Windows, χρησιμοποιώντας δωρεάν βάση δεδομένων, εργαλείο ανάπτυξης προγραμματισμού και τον δωρεάν ενσωματωμένο κινητήρα TTS που συνοδεύει τα Windows. Η λέξη " Windows " ανήκει στη Microsoft. Η λέξη " Dra
Πώς να φτιάξετε ένα A.I. Μέρος 1: 5 Βήματα
Πώς να φτιάξετε ένα A.I. Μέρος 1: Ξεκινήστε με έναν υπολογιστή που διαθέτει αναγνώριση ομιλίας και επίσης έναν μετατροπέα κειμένου σε ομιλία. Θα πρέπει να είστε σε θέση να γράψετε προγράμματα υπολογιστών που μπορούν να έχουν πρόσβαση στην Αναγνώριση ομιλίας και στο Μετατροπέα κειμένου σε ομιλία. Ορισμένα εργαλεία ανάπτυξης εφαρμογών και
Πώς να φτιάξετε ένα παιχνίδι καρτών σε ένα Raspberry Pi: 8 βήματα
Πώς να φτιάξετε ένα παιχνίδι καρτών σε ένα Raspberry Pi: Ο σκοπός αυτού είναι να δημιουργήσετε ένα παιχνίδι στο raspberry pi χρησιμοποιώντας μουσική, κουμπιά, φώτα και βομβητή! το παιχνίδι ονομάζεται Άσοι και ο στόχος είναι να φτάσουμε όσο το δυνατόν πιο κοντά στο 21 χωρίς να το παρακάνουμε Βήμα 1: Προετοιμασία του Raspberry Pi Πάρτε το raspberry pi και
Πώς να φτιάξετε ένα CubeSat με ένα Arduino με ένα Arducam: 9 βήματα
Πώς να φτιάξετε ένα CubeSat με ένα Arduino με ένα Arducam: Στην πρώτη εικόνα, έχουμε ένα Arduino και ονομάζεται " Arduino Uno. &Quot; Στη δεύτερη εικόνα, έχουμε ένα Arducam, και ονομάζεται " Arducam OV2640 Μίνι 2MP. &Quot; Μαζί με τη δεύτερη εικόνα, υπάρχουν τα υλικά που θα χρειαστείτε για