Inhaltsverzeichnis:

So erstellen Sie eine KI Teil 4: 3 Schritte
So erstellen Sie eine KI Teil 4: 3 Schritte

Video: So erstellen Sie eine KI Teil 4: 3 Schritte

Video: So erstellen Sie eine KI Teil 4: 3 Schritte
Video: #3 Künstliche Intelligenz einsetzen: In 4 Schritten zur eigenen KI-Strategie. 2024, Dezember
Anonim
So erstellen Sie eine KI Teil 4
So erstellen Sie eine KI Teil 4

Neulich habe ich mit meiner KI gesprochen und ich habe gesagt:

es: "Ich gehe nach oben zum Abendessen, wir essen STEAK".

Die Spracherkennungssoftware (SR) interpretierte dies jedoch als „… wir haben STAKE“

Ich bin vorhin auf ein ähnliches (aber anderes) Problem gestoßen, als ich über ein Foto sprach, und ich sagte das Wort „BILD“. Die SR-Software interpretiert dies als „PITCHER“

Die Lösung hierfür war ein einfaches Umschulen der SR-Software. (Oder vielleicht meine Aussprache)

Aber wenn ich die Wörter STEAK oder STAKE sage, spreche ich sie genau so aus und ein Umschulen der SR-Software hilft in solchen Fällen nicht.

Schritt 1:

Eine Idee zur Lösung des „Homonymproblems“.

Ich muss mir das Wort „im Kontext“ansehen, um zu bestimmen, welche Schreibweise verwendet werden soll. Das menschliche Gehirn tut dies ganz einfach, und Sie wissen nicht einmal, dass Sie es tun.

Das bedeutet, dass andere Wörter in einem Satz untersucht werden und Ihr Gehirn entscheidet, welche Schreibweise am besten aussieht. Wie mache ich das jetzt im Code?

Meine KI Programm parst einen Satz in ein Array von einzelnen Wörtern mit der Visual Basic (VB) Funktion „Split“. [MyArray = Split(InputSentence, ““)]

Jedes Wort im Array kann überprüft werden, um zu sehen, ob es ein mögliches Homonym ist, indem Sie in einer Datenbanktabelle nachsehen, die eine Liste von Homonymen enthält.

Das Erstellen einer weiteren Tabelle bedeutet natürlich, dass wir sie mit Daten füllen müssen und auch die Daten in der Tabelle pflegen können.

Eine selbstlernende Subroutine kann später erstellt werden, um eine Menge Text zu scannen, nach Wörtern in meiner Homonym-Tabelle zu suchen und andere „Kontext“-Wörter zu erfassen. Hmmmmm, vielleicht werden mehrere Tische benötigt…

Das Schreiben dieser "Instructables" hilft mir, eine Lösung für eine Programmierherausforderung zu "begründen".

Schritt 2:

Bild
Bild

Struktur der HomonymContext-Tabelle

Meine erste Idee war eine Tabelle mit Wörtern, alternativen Schreibweisen und „Kontext“-Wörtern. Die Idee war, einen Satz, der ein Homonym enthält, nach anderen Wörtern zu durchsuchen, die den „Kontext“angeben, damit das Programm die zu verwendende Schreibweise bestimmen kann. Die Tabelle enthält auch eine Spalte mit dem Namen „WordDef“, die die Definition des Wortes enthält, die mehr für den Menschen ist, der die Tabelle verwaltet, als für die KI. Code.

Um jedes Wort zu suchen, kann ich VB-Code und SQL-Code verwenden wie …

Für jedes Wort in MyArray

Query = "Wort aus tblHomonynContext auswählen, wobei Wort = '" & Wort & "'"

Wenn diese Abfrage ein Ergebnis zurückgibt, ist das Wort ein Homonym

Nächste

Dies ist an dieser Stelle nur Pseudocode – ich habe noch nicht den genauen Code geschrieben oder alle Details herausgefunden. Aber nehmen Sie gerne meine Idee und setzen Sie sie mit Ihrer eigenen Lieblingsprogrammiersprache um.

Schritt 3:

Bild
Bild

Wenn Ihr Eingabesatz ein Homonym enthält, können Sie jetzt

Führen Sie VB-Code aus, der die anderen Wörter in Ihrem Satz mit den Kontextwörtern in den Abfrageergebnissen überprüft.

Sie können dies auch alles in einer gespeicherten SQL-Prozedur tun, die möglicherweise schneller ausgeführt wird.

Die VB-Funktion „InStr()“gibt eine Zahl größer Null zurück, wenn eine Zeichenfolge in einer anderen Zeichenfolge enthalten ist, oder sie gibt Null zurück, wenn die Zeichenfolge NICHT in der anderen enthalten ist.

Instr() gibt tatsächlich die Position des enthaltenen Strings zurück. Wenn Sie nur wissen möchten, ob String1 String2 enthält, können Sie Code wie „If InStr(String1, String2) > 0 …“verwenden.

Sie müssen diesen Code in Ihrer bevorzugten Programmiersprache erstellen.

Die HomonymContext-Tabelle ist kein sehr gutes Design. Es enthält viele sich wiederholende Daten, die von Datenbankdesignern als "nicht normalisiert" angesehen werden. Eine bessere Möglichkeit, diese Funktionalität zu implementieren, besteht darin, zwei Tabellen in einer Eltern-Kind-Beziehung zu verwenden. Eine Tabelle (The Parent) würde eine Liste von Homonymen, deren Definitionen und auch eine Zeilen-ID enthalten. Diese Zeilen-ID wird als Schlüssel zur "Kindertabelle" verwendet, die die Wörter und ihre Kontextwörter enthalten würde.

Dies wäre einfacher abzufragen (und zu warten) als mein ursprüngliches Design.

Empfohlen: