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
Antwort Antwort
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
InitializationError

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

AW: Codename ZARA: Sprachassistent

  Alt 9. Mär 2012, 17:48
Hier ist nochmal die Zara im Anhang!!

Und das sind die möglichen Anfragen (diese lassen sich sehr schnell erweitern):

1. Wer bist du?
2. Wer hat dich erschaffen?
3. Wie geht es dir Heute?
4. Liebst du mich? ⁄ Willst du mich heiraten?
5. Was kannst du so?
6. Hallo (Hi ect.)
7. Du bist dumm Zara
8. Was bedeutet Zara?
9. Ich bin dein Erfinder.
10. Weißt du wer ich bin?
11. Aus was bestehst du?
12. Du nervst.
13. Sage mir die lokale IP-Adresse.

WICHTIG: Bei der Eingabe keine Sonderzeichen wie (?!. ect) verwenden!

Wer bist du? <--- FALSCH
Wer bist du <--- RICHTIG


PS: Die Eingabe muss nicht genau so sein! Es ist so programmiert, dass man die Fragestellung bisschen variieren kann!
Angehängte Dateien
Dateityp: zip Zara.zip (2,56 MB, 9x aufgerufen)

Geändert von InitializationError ( 9. Mär 2012 um 17:50 Uhr)
  Mit Zitat antworten Zitat
Gustav.R
(Gast)

n/a Beiträge
 
#3

AW: Codename ZARA: Sprachassistent

  Alt 9. Mär 2012, 18:22
Kennst Du Eliza?

http://home.ph-freiburg.de/deisslerf...at_I-02-03.htm

Grüß' sie von mir

GG
  Mit Zitat antworten Zitat
InitializationError

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

AW: Codename ZARA: Sprachassistent

  Alt 9. Mär 2012, 18:35
Sry sagt mir nichts und die EXE(n) lassen sich bei mir nicht starten hab ein 64Bit System!

Was genau wolltest du mir damit sagen/zeigen?!
  Mit Zitat antworten Zitat
Gustav.R
(Gast)

n/a Beiträge
 
#5

AW: Codename ZARA: Sprachassistent

  Alt 9. Mär 2012, 19:05
Eliza ist vermutlich die Urgroßmutter von ZARA, auf der verlinkten Seite ist eine ZIP-Datei mit Pascal-Quelltext, nicht gesehen?

http://de.wikipedia.org/wiki/ELIZA

GG
  Mit Zitat antworten Zitat
InitializationError

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

AW: Codename ZARA: Sprachassistent

  Alt 9. Mär 2012, 19:45
Der Quelltext scheint ziemlich komplex zu sein, ich sehe da leider nicht durch
Aber ich bräuchte jetzt nicht einen fertigen Quelltext sondern einfach in Textform wie das Programm ablaufen sollte um den Erkennungsalgorithmus zu verbessern.

Selber programmieren macht mehr spaß. Habe leider keine andere Idee für einen Erkennungsalgorithmus.
Man könnte auch mit Zuständen arbeiten, aber das würde Extrem aufwendig werden. Und man könnte die Wissensbasis nicht mehr leicht erweitern :-/
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:34 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