Table des matières:

Comment faire une A.I. Partie 2 : 9 étapes
Comment faire une A.I. Partie 2 : 9 étapes

Vidéo: Comment faire une A.I. Partie 2 : 9 étapes

Vidéo: Comment faire une A.I. Partie 2 : 9 étapes
Vidéo: 9 ÉTAPES POUR CRÉER UNE APP 📱 2024, Novembre
Anonim
Comment faire une A. I. Partie 2
Comment faire une A. I. Partie 2

Ceci est la partie 2 sur les étapes que j'ai suivies pour créer une IA sur un ordinateur Windows, en utilisant une base de données gratuite, un outil de développement de programmation et le moteur TTS intégré gratuit fourni avec Windows.

Le mot "Windows" appartient à Microsoft.

Le mot "Dragon" appartient à Nuance.

Étape 1: Comment faire une IA Partie 2

Comment faire une IA partie 2
Comment faire une IA partie 2

Choisissez un langage de programmation et obtenez des outils

Il existe de nombreux langages de programmation. Certains sont spécialisés pour l'IA. Mon préféré est Visual Basic, c'est donc ce que j'ai utilisé. Je travaille également avec des bases de données de serveurs SQL, donc je les ai également utilisées.

Vous pouvez télécharger des versions gratuites de ces derniers sur le site Web de Microsoft. Recherchez simplement « EXPRESS » sur le site Web de Microsoft. [Visual Studio Express et serveur SQL Express]

Les autres langages que vous voudrez peut-être utiliser sont: Python, C#, C++, Java, Prolog, Lisp, IPL

et plein d'autres. AIML est un « langage de balisage » très intéressant.

Je voulais un meilleur programme de « reconnaissance vocale » que celui fourni avec Windows, j'ai donc acheté le logiciel DRAGON. J'utilise le programme standard "Text-to-speech" fourni avec Windows.

Étape 2: Concevez votre système:

Concevez votre système
Concevez votre système

Divisez vos grands projets en plusieurs projets plus petits. J'ai divisé mon code de programme en modules.

J'ai divisé mon code en différents modules afin qu'une fonction particulière soit plus facile à trouver.

J'ai des modules nommés « Process Input », « Process AI », « Process Output », « User Interface » et quelques autres. Certaines de mes fonctions doivent être accessibles à tous les autres modules de code, donc je mets ces fonctions dans un module « commun » où tout est partagé

Étape 3: Fonctions intégrées au langage de programmation:

Fonctions intégrées au langage de programmation
Fonctions intégrées au langage de programmation

Différentes langues peuvent avoir des noms différents pour celles-ci, mais toutes les langues de haut niveau ont des fonctions similaires.

LCase ou ToLower: convertit une chaîne en minuscules. Je convertis tout en minuscules avant de faire une recherche dans la base de données - même si la plupart des choses sont "insensibles à la casse" - Juste au cas où.

Remplacer: remplace une chaîne à l'intérieur d'une chaîne par une autre chaîne. Vous pouvez remplacer une chaîne par une chaîne vide "" pour vous en débarrasser. Je me débarrasse des points, points d'interrogation, virgules et autres signes de ponctuation.

Diviser: divise une chaîne en morceaux individuels et les place dans un tableau. Cette fonction divisera une chaîne sur n'importe quel caractère, ou "Délimiteur". Je divise une phrase sur un "caractère espace" " " pour faire un tableau de mots. C'est ce qu'on appelle la « tokenisation » par les gourous de l'IA.

J'utilise les mots individuels pour créer des requêtes utilisées pour rechercher dans la base de données. (Plus à ce sujet dans mon prochain article)

Étape 4: Combinez des fonctions intégrées pour créer vos propres fonctions

Il s'agit d'un exemple « visuel de base ». Utilisez votre langage de programmation pour créer quelque chose comme ça.

Bien sûr, vous aurez besoin d'écrire beaucoup de code et de construire de nombreuses fonctions, en utilisant le langage de programmation de votre choix.

Étape 5: à quoi servent les modules ? "Processeur d'entrée"

A quoi servent les modules ? "Processeur d'entrée"
A quoi servent les modules ? "Processeur d'entrée"

Il pourrait y avoir une centaine de façons différentes de poser la même question à l'IA. Par exemple; « Quelle heure est-il ? », « Avez-vous le temps ? » « Savez-vous quelle heure il est ? », « Pouvez-vous me dire l'heure actuelle ? » Étant donné que l'utilisateur ne demande que l'heure, je convertis l'une de ces entrées en une seule sortie appelée « heure de la requête » à l'aide d'une table de « recherche » de la base de données.

Vous pouvez écrire du code pour parcourir une table jusqu'à ce qu'il trouve une correspondance, ou si vous utilisez une base de données SQL, vous pouvez écrire une requête SQL, comme…

"Sélectionnez la sortie à partir de TableName où Input = "" quel que soit ""

… Et puis j'envoie la sortie, « Query Time », au module de code suivant; « IA de processus »

Outre les questions, il existe de nombreuses façons de dire « Bonjour »

Salut, salut, quoi de neuf, hé, hola, comment vas-tu?, salutations, bienvenue, salutations, salut ….

Tout cela se réduit à « Salutation »

Lorsque le processeur AI voit « Salutation », il envoie « Salutation » au processeur de sortie, qui choisira une salutation aléatoire dans une table de base de données et la prononcera à haute voix.

Étape 6: « Processeur IA »

« Processeur d'IA »
« Processeur d'IA »

Process AI est le plus grand module de code. Il est si grand que je l'ai également divisé en sections.

L'entrée est vérifiée pour voir si l'utilisateur a prononcé une commande ou posé une question. En outre, l'IA peut être dans l'un des plusieurs « Modes », ce qui signifie que le code « Process AI » attend de l'utilisateur qu'il RÉPOND à une question, au lieu de POSER une question.

Si l'utilisateur n'a pas prononcé de commande et que l'IA n'est pas dans un « mode » spécial, elle crée et exécute un tas de requêtes, à partir de combinaisons de mots dans le « tableau de mots ». Tous les résultats de la requête sont stockés dans une table et chaque résultat de la requête se voit attribuer un « score » indiquant dans quelle mesure le résultat correspond à ce que l'utilisateur a dit. Le tableau est trié par le score, et le résultat avec le score le plus élevé est envoyé à la sortie, s'il dépasse un certain seuil. Si tous les scores sont inférieurs au seuil, l'IA peut répondre par « Je ne sais pas » ou « Cela ne calcule pas »

Étape 7: Le tableau « résultats et scores »

Les
Les

La sortie de l'IA de mon entrée "Qu'est-ce que le poulet a fait?"

Étape 8: « Processeur de sortie »

"Processeur de sortie"
"Processeur de sortie"

Cela fait plusieurs choses qui ont l'air "non liées", mais elles ont toutes à voir avec la transmission du texte du processeur AI à l'utilisateur.

Voici une liste.

1. Le texte de la base de données peut être en minuscules et ne comporter aucune ponctuation.. Les sous-programmes mettront la première lettre en majuscule et placeront un point ou un point d'interrogation à la fin.

2. Un autre sous-programme remettra les apostrophes en contractions ou reconvertira les contractions en mots complets (c'est-à-dire que « cant » est remplacé par « ne peut pas »)

3. Le moteur de synthèse vocale ne prononce pas certains mots comme je le souhaite, donc le "processeur de sortie" remplace ces mots par une orthographe phonétique. J'ai des tables de "recherche" de base de données pour les contenir, similaires à celle-ci dans le "processeur d'entrée"

4. Si l'IA ne trouve pas de réponse appropriée dans la base de données, elle peut dire « Je ne sais pas », mais je ne veux pas qu'elle le répète encore et encore. Les vraies personnes varient leurs réponses. Il existe donc un tableau avec des phrases de « sortie commune » et une fonction qui en choisit une au hasard (et ne choisira jamais la même deux fois de suite.)

5. Le moteur gratuit « text-to-speech » (TTS) ne donne pas beaucoup d'options au programmeur pour la façon dont les phrases sont prononcées, mais vous avez un peu de contrôle sur la hauteur et la vitesse des phonèmes. Le terme pour cela est "Prosodie". J'ai ajouté des codes de "prosodie" dans le texte de ma base de données, et lorsque le "processeur de sortie" les voit, il ajuste la hauteur et la vitesse dans le moteur TTS à chaque mot prononcé.

6. Parfois, le TTS est tout simplement difficile à comprendre, donc en plus de prononcer des mots à voix haute, je les affiche également en grosses lettres sur l'écran de mon ordinateur. Cette partie de « l'interface utilisateur » est une grille qui affiche les 6 dernières lignes d'une conversation (entrée utilisateur et sortie AI) et défile vers le haut au fur et à mesure que de nouvelles lignes sont ajoutées.

Étape 9: Continuez à travailler dessus

Continuez à travailler dessus
Continuez à travailler dessus

Ma contribution était "Ne le dites à personne"

Je travaille toujours sur mon système d'IA, et cela ne sera probablement jamais vraiment « terminé ». Au fur et à mesure que j'ajoute plus de fonctionnalités, j'écrirai plus d'articles.

Peut-être que certaines de mes idées vous inspireront pour construire une IA meilleure que la mienne

Conseillé: