AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Codename ZARA: Sprachassistent
Thema durchsuchen
Ansicht
Themen-Optionen

Codename ZARA: Sprachassistent

Ein Thema von InitializationError · begonnen am 9. Mär 2012 · letzter Beitrag vom 4. Apr 2012
 
InitializationError

Registriert seit: 25. Nov 2011
12 Beiträge
 
#1

Codename ZARA: Sprachassistent

  Alt 9. Mär 2012, 17:08
Guten Tag liebe Progger

Also ich habe für ein Schulprojekt einen Sprachassistenten geschrieben.
Der funktioniert auch soweit ganz okay, aber der Erkennungsalgorithmus ist nicht 100% sicher.

Ich wollte einfach mal fragen ob hier im Forum jemand lust hätte gemeinsam mit mir einen kleveren Algorithmus auszudenken.

Ich beschreibe mal was ich bisher gemacht habe.

Mein Programm besitzt zwei WISSENSBASEN. Die eine beinhaltet Strings der möglichen Fragestellung (z.B. wer bist du kannst du mir sagen wie heißt). <-- JA genau so, ich erkläre gleich warum.
Und die zweite Wissensbasis beinhaltet die möglichen Antworten die das Programm zurückliefert.

So nun wird ein String eingegeben und ausgewertet. Das Problem hier ist, die UNNÖTIGEN LEERZEICHEN. Diese werden am Anfang/Ende und zwischen den Wörtern gesucht und gelöscht, sodass maximal nur ein Leerzeichen übrig bleibt (zwischen den Wörtern). Als nächstes wird diese Stringkette in einzelne Strings zerteilt (einzelne Wörter) und in je ein Array zwischengespeichert.

Nun greift sich das Programm alle einzelne Wörter und geht die erste Wissensbasis durch. (Anmerkung: Beide Wissensbasen befinden sich in einer einzelnen Listbox.) Es wird dann eine TREFFERQUOTE berechnet. Damit wird die Zeile in der Listbox mit der höchsten Trefferquote ermittelt. Je nach dem in welcher Zeile die höchste Trefferquote war, greift sich das Programm aus der zweiten Wissensbasis den String in der gleichen Zeile und liefert eine Antwort.

Dieser Algorithmus ist wie gesagt nicht 100%ig sicher, da in den Zeilen der ersten Wissensbasis sich einige Wörter wiederholen und bei einer falschen oder unerwarteten Fragestellung liefert das Programm vielleicht eine falsche Antwort.

LANGE REDE, KURZER SINN. Ich würde mich über eure Meinung bzw. Ideen freuen

Das ganze ist eine Art SIRI nur für Windows

Hier das ganze noch einmal etwas anders:

Eingabe ("_" sollen Leerzeichen darstellen):

"___Wer_____bist_du" --Korrektur zu--> "Wer_bist_du"

Aufteilung in Arrays (alle Zeichen klein geschrieben):

1.wer
2.bist
3.du

Vergleich mit der ersten Wissensbasis (zwei Bsp. Zeilen):

1.wer bist du kannst mir sagen wie heißt
2.wer ist dein erfinder programmierer schöpfer

Ermittlung der Trefferquote:

Für Zeile 1. ---> 3
Für Zeile 2. ---> 1

Auslesen des Strings aus der 2. Wissensbasis, aus der gleichen Zeile wo in 1. Wissensbasis die höchste Trefferquote war:

1.Mein Name ist Zara.
2.Mein Erfinder ist Initialization Error!

Ausgabe:

Mein Name ist Zara.

Geändert von InitializationError ( 9. Mär 2012 um 17:25 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz