Πίνακας περιεχομένων:

Πώς να φτιάξετε ένα A.I. Μέρος 2: 9 Βήματα
Πώς να φτιάξετε ένα A.I. Μέρος 2: 9 Βήματα

Βίντεο: Πώς να φτιάξετε ένα A.I. Μέρος 2: 9 Βήματα

Βίντεο: Πώς να φτιάξετε ένα A.I. Μέρος 2: 9 Βήματα
Βίντεο: Rubik's Cube 3x3 ∣ Πως να τον λύσετε σε 8 απλά βήματα ∣ Με τον μάγο Τρίσταν! 2024, Ιούλιος
Anonim
Πώς να φτιάξετε ένα A. I. Μέρος 2ο
Πώς να φτιάξετε ένα A. I. Μέρος 2ο

Αυτό είναι το μέρος 2 σχετικά με τα βήματα που έκανα για να δημιουργήσω μια τεχνητή νοημοσύνη σε υπολογιστή με Windows, χρησιμοποιώντας δωρεάν βάση δεδομένων, εργαλείο ανάπτυξης προγραμματισμού και τον δωρεάν ενσωματωμένο κινητήρα TTS που συνοδεύει τα Windows.

Η λέξη "Windows" ανήκει στη Microsoft.

Η λέξη "Dragon" ανήκει στη Nuance.

Βήμα 1: Πώς να φτιάξετε AI Μέρος 2

Πώς να φτιάξετε AI Μέρος 2
Πώς να φτιάξετε AI Μέρος 2

Επιλέξτε μια γλώσσα προγραμματισμού και πάρτε μερικά εργαλεία

Υπάρχουν πολλές γλώσσες προγραμματισμού. Μερικά είναι εξειδικευμένα για την Α. Ι. Το αγαπημένο μου είναι η Visual Basic, οπότε αυτό χρησιμοποιούσα. Δουλεύω επίσης με βάσεις δεδομένων διακομιστή SQL, οπότε το χρησιμοποίησα και αυτό.

Μπορείτε να κατεβάσετε δωρεάν εκδόσεις αυτών από τον ιστότοπο της Microsoft. Απλώς αναζητήστε το "EXPRESS" στον ιστότοπο της Microsoft. [Visual Studio Express και SQL server Express]

Άλλες γλώσσες που μπορεί να μας θέλετε είναι: Python, C#, C ++, Java, Prolog, Lisp, IPL

και πολλοί άλλοι. Το AIML είναι μια "γλώσσα σήμανσης" που είναι πολύ ενδιαφέρουσα.

Iθελα ένα καλύτερο πρόγραμμα "αναγνώρισης ομιλίας" από αυτό που έρχεται με τα Windows, οπότε αγόρασα το λογισμικό DRAGON. Χρησιμοποιώ το τυπικό πρόγραμμα "Text-to-speech" που συνοδεύει τα Windows.

Βήμα 2: Σχεδιάστε το σύστημά σας:

Σχεδιάστε το σύστημά σας
Σχεδιάστε το σύστημά σας

Χωρίστε τα μεγάλα έργα σας σε μια δέσμη μικρότερων έργων. Χώρισα τον κώδικα του προγράμματος μου σε ενότητες.

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

Έχω ενότητες που ονομάζονται "Εισαγωγή διαδικασίας", "Διαδικασία τεχνητής νοημοσύνης", "Έξοδος διεργασίας", "Διεπαφή χρήστη" και μερικές άλλες. Ορισμένες από τις λειτουργίες μου πρέπει να είναι προσβάσιμες σε όλες τις άλλες μονάδες κώδικα, οπότε τις τοποθετώ σε μια «κοινή» ενότητα όπου μοιράζονται τα πάντα

Βήμα 3: Λειτουργίες που είναι ενσωματωμένες στη γλώσσα προγραμματισμού:

Λειτουργίες που είναι ενσωματωμένες στη γλώσσα προγραμματισμού
Λειτουργίες που είναι ενσωματωμένες στη γλώσσα προγραμματισμού

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

LCase ή ToLower: Μετατρέπει μια συμβολοσειρά σε όλα τα πεζά. Μετατρέπω τα πάντα σε πεζά γράμματα προτού πραγματοποιήσω αναζήτηση στη βάση δεδομένων-παρόλο που τα περισσότερα πράγματα είναι "χωρίς διάκριση πεζών-κεφαλαίων"-για κάθε περίπτωση.

Αντικατάσταση: Αντικαταστήστε μια συμβολοσειρά μέσα σε μια συμβολοσειρά σε μια άλλη συμβολοσειρά. Μπορείτε να αντικαταστήσετε μια συμβολοσειρά με μια κενή συμβολοσειρά "" για να την απαλλαγείτε. Απαλλάσσομαι από τελείες, ερωτηματικά, κόμματα και άλλα σημεία στίξης.

Split: Χωρίζει μια συμβολοσειρά σε μεμονωμένα κομμάτια και τα τοποθετεί σε έναν πίνακα. Αυτή η συνάρτηση θα χωρίσει μια συμβολοσειρά σε οποιονδήποτε χαρακτήρα ή "Οριοθέτης". Χώρισα μια πρόταση σε έναν "κενό χαρακτήρα" "" για να δημιουργήσω μια σειρά από λέξεις. Αυτό ονομάζεται "Tokenizing" από τους AI Gurus.

Χρησιμοποιώ τις μεμονωμένες λέξεις για να δημιουργήσω ερωτήματα που χρησιμοποιούνται για την αναζήτηση στη βάση δεδομένων. (Περισσότερα για αυτό στο επόμενο άρθρο μου)

Βήμα 4: Συνδυάστε ενσωματωμένες λειτουργίες για να δημιουργήσετε τις δικές σας λειτουργίες

Αυτό είναι ένα παράδειγμα "βασικής οπτικής". Χρησιμοποιήστε τη γλώσσα προγραμματισμού για να δημιουργήσετε κάτι τέτοιο.

Φυσικά, θα χρειαστεί να γράψετε πολύ κώδικα και να δημιουργήσετε πολλές λειτουργίες, χρησιμοποιώντας τη γλώσσα προγραμματισμού της επιλογής σας.

Βήμα 5: Τι κάνουν οι ενότητες; "Επεξεργαστής εισόδου"

Τι κάνουν οι ενότητες; "Επεξεργαστής εισόδου"
Τι κάνουν οι ενότητες; "Επεξεργαστής εισόδου"

Μπορεί να υπάρχουν εκατό διαφορετικοί τρόποι για να υποβληθεί η τεχνητή νοημοσύνη στην ίδια ερώτηση. Για παράδειγμα; «Τι ώρα είναι;», «Έχετε χρόνο;» «Ξέρεις τι ώρα είναι;», «Μπορείς να μου πεις την τρέχουσα ώρα της ημέρας;» Δεδομένου ότι ο χρήστης ζητά μόνο το χρόνο, μετατρέπω οποιαδήποτε από αυτές τις Εισόδους σε μία έξοδο που ονομάζεται "eryρα ερωτήματος" χρησιμοποιώντας έναν πίνακα "αναζήτησης" βάσης δεδομένων.

Μπορείτε να γράψετε κώδικα στον βρόχο μέσω ενός πίνακα μέχρι να βρει μια αντιστοίχιση ή εάν χρησιμοποιείτε μια βάση δεδομένων SQL, μπορείτε να γράψετε ένα ερώτημα SQL, όπως…

"Επιλογή εξόδου από το όνομα πίνακα όπου εισαγωγή =" "όποιο""

… Και στη συνέχεια στέλνω την έξοδο, "eryρα ερωτήματος", στην επόμενη μονάδα κώδικα. "Διαδικασία AI"

Εκτός από ερωτήσεις, υπάρχουν πολλοί τρόποι να πείτε "Γεια"

Γεια, γεια, τι συμβαίνει, γεια, hola, πώς περνάτε;, χαιρετισμούς, καλώς ήλθατε, χαιρετισμούς, γεια σας….

Όλα αυτά περιορίζονται σε "Χαιρετισμός"

Όταν ο επεξεργαστής τεχνητής νοημοσύνης βλέπει "Χαιρετισμός" στέλνει "Χαιρετισμός" στον επεξεργαστή εξόδου, ο οποίος επιλέγει έναν τυχαίο χαιρετισμό από τον πίνακα βάσης δεδομένων και τον εκφωνεί δυνατά.

Βήμα 6: "Επεξεργαστής AI"

"Επεξεργαστής AI"
"Επεξεργαστής AI"

Η διεργασία AI είναι η μεγαλύτερη μονάδα κώδικα. Είναι τόσο μεγάλο που το χώρισα και σε τμήματα.

Η είσοδος ελέγχεται για να διαπιστωθεί εάν ο χρήστης μίλησε μια εντολή ή έκανε μια ερώτηση. Επίσης, η τεχνητή νοημοσύνη μπορεί να είναι σε οποιαδήποτε από τις διάφορες "Λειτουργίες", πράγμα που σημαίνει ότι ο κώδικας "Διεργασία AI" περιμένει από τον χρήστη να ΑΠΑΝΤΗΣΕΙ σε μια ερώτηση, αντί να κάνει ΕΡΩΤΗΣΗ.

Εάν ο χρήστης δεν μίλησε μια εντολή και το AI δεν βρίσκεται σε ειδική "Λειτουργία", τότε δημιουργεί και εκτελεί μια δέσμη ερωτημάτων, από συνδυασμούς των λέξεων στον "πίνακα λέξεων". Όλα τα αποτελέσματα ερωτήματος αποθηκεύονται σε έναν πίνακα και σε κάθε αποτέλεσμα ερωτήματος δίνεται μια «βαθμολογία» ως προς το πόσο ταιριάζει το αποτέλεσμα με αυτό που είχε πει ο χρήστης. Ο πίνακας ταξινομείται κατά τη βαθμολογία και το αποτέλεσμα με την υψηλότερη βαθμολογία αποστέλλεται στην έξοδο, εάν υπερβεί ένα ορισμένο όριο. Εάν όλες οι βαθμολογίες είναι κάτω από το όριο, η τεχνητή νοημοσύνη μπορεί να απαντήσει με "Δεν ξέρω" ή "Αυτό δεν υπολογίζεται"

Βήμα 7: Ο πίνακας "έξοδος και βαθμολογίες"

ο
ο

Η έξοδος του AI από την εισαγωγή μου "Τι έκανε το κοτόπουλο;"

Βήμα 8: "Επεξεργαστής εξόδου"

«Επεξεργαστής εξόδου»
«Επεξεργαστής εξόδου»

Αυτό κάνει αρκετά "άσχετα" πράγματα, αλλά όλα έχουν να κάνουν με το να μεταφέρουν το κείμενο από τον επεξεργαστή τεχνητής νοημοσύνης στον χρήστη.

Εδώ είναι μια λίστα.

1. Το κείμενο από τη βάση δεδομένων μπορεί να είναι πεζό και να μην έχει σημεία στίξης.. Οι υπορουτίνες θα γράψουν με κεφαλαίο γράμμα το πρώτο γράμμα και θα βάλουν μια τελεία ή ένα ερωτηματικό στο τέλος.

2. Μια άλλη υπορουτίνα θα επαναφέρει τις αποστροφές σε συσπάσεις ή θα μετατρέψει τις συσπάσεις σε πλήρεις λέξεις (δηλαδή το "δεν μπορώ" αντικαθίσταται με το "δεν μπορώ")

3. Η μηχανή μετατροπής κειμένου σε ομιλία δεν προφέρει μερικές λέξεις όπως μου αρέσει, οπότε ο "Επεξεργαστής εξόδου" αντικαθιστά αυτές τις λέξεις με φωνητική ορθογραφία. στον "επεξεργαστή εισόδου"

4. Εάν η τεχνητή νοημοσύνη δεν βρίσκει μια κατάλληλη απάντηση στη βάση δεδομένων, μπορεί να πει "δεν ξέρω", αλλά δεν θέλω να το λέει αυτό ξανά και ξανά. Οι πραγματικοί άνθρωποι διαφέρουν στις απαντήσεις τους. Υπάρχει λοιπόν ένας πίνακας με φράσεις "Common Output" και μια συνάρτηση που επιλέγει μία τυχαία (και δεν θα επιλέξει ποτέ την ίδια δύο φορές στη σειρά.)

5. Ο δωρεάν κινητήρας "μετατροπής κειμένου σε ομιλία" (TTS) δεν δίνει πολλές δυνατότητες στον προγραμματιστή για τον τρόπο εκφώνησης των προτάσεων, αλλά έχετε λίγο έλεγχο στο βήμα και την ταχύτητα των φωνημάτων. Ο όρος για αυτό είναι "Prosody". Πρόσθεσα μερικούς κωδικούς "προσωδίας" στο κείμενο στη βάση δεδομένων μου και όταν ο "Επεξεργαστής εξόδου" τα δει αυτά, προσαρμόζει το βήμα και την ταχύτητα στον κινητήρα TTS καθώς εκφράζεται κάθε λέξη.

6. Μερικές φορές το TTS είναι απλά δύσκολο να κατανοηθεί, οπότε εκτός από το να λέω λέξεις δυνατά, τις εμφανίζω και με μεγάλα γράμματα στην οθόνη του υπολογιστή μου. Αυτό το μέρος της "Διεπαφής χρήστη" είναι ένα πλέγμα που εμφανίζει τις τελευταίες 6 γραμμές μιας συνομιλίας, (Εισαγωγή χρήστη και έξοδος AI) και μετακινείται προς τα πάνω καθώς προστίθενται νέες γραμμές.

Βήμα 9: Συνεχίστε να εργάζεστε σε αυτό

Συνεχίστε να εργάζεστε σε αυτό
Συνεχίστε να εργάζεστε σε αυτό

Η γνώμη μου ήταν «Μην το πεις σε κανέναν»

Εξακολουθώ να δουλεύω στο σύστημα τεχνητής νοημοσύνης μου και πιθανότατα ποτέ δεν θα «τελειώσει». Καθώς προσθέτω περισσότερες δυνατότητες, θα γράψω περισσότερα άρθρα.

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

Συνιστάται: