Parser für TextAnalyse ... KI-Erweiterung

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

Die Yellowstrom Eve ist übrigens auch Alicebot, genau wie die Ikea-Butze... nur die Infodatenbank dahinter ist ein wenig anders.
Würde mich daher sehr wundern wenn die schlechter ist als die Ikea-version.
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Gut das wir jetzt Bescheid wissen.

Wer macht mit eine PB-Butze zu basteln? :shock: :? :allright:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

Such dir doch lieber eine Freundin aus Fleisch und Blut... mit der kann man dann auch ganz andere sachen machen als reden :lol:
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Nee du, das war jetzt ganz daneben :?

Mein Ziel ist ja, für alle, die sich keine echte Freundin leisten können, eine Engine zu entwickeln, die dann in eine RealDoil oder einen weiblichen Asimo embeded wird /:->
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

das echt arm...
Bild
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Der Dativ ist dem Genitiv sein Tod.
>> übrigens ein tolles Buch ... Hab die HörCDs :mrgreen:


Wie schon auf der ersten Seite des Themas erwähnt:
http://www.schyren-gymnasium.de/gramm/index.html

Die Seite ist wirklich gut, einfach mal reinschauen und sich mitreißen lassen.
Es geht nicht darum, besser Sprechen zu können als vorher oder nachts aufzuwachen und alle Präpositionen aufsagen zu können, die es nur in Verbindung mit dem Genitiv gibt ...

Viel mehr darum, dass, woran wir uns täglich halten ... einige mehr, andere weniger ... in einer für den Computer verständliche Form zubringen und auch etwas damit zu assoziieren.

Ich hab schon CODE reingestellt. Traut euch ruhig.

>> Einen hab ich noch:

Ohne du kann ich nicht bin.

Es dürfte nicht all zu schwer sein, dass der Computer daraus den richtigen Satz bildet. Ob er dann auch wirklich weiß, was er bedeutet, ist eine andere Sache.

Wem fällt was einfaches ein, was möglichst ohne große Datenbank auskommt oder sich selbst eine generiert.

SQL und QuellCode bevorzugt :roll: :shock: /:-> :o :D :allright:
Zuletzt geändert von Xaby am 18.05.2006 13:46, insgesamt 1-mal geändert.
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Auf der anderen Seite war ein Schusseligkeitsfehler.

; Folgenden 3 Zeilen sollen aus Umgangssprache Hochdeutsch mach'n
If Mid(Eingabe,Len(Eingabe)-1,1)<>"e"
Eingabe=Left(Eingabe,Len(Eingabe)-1)+"en"
EndIf


Bei der ganzen Hektik hatte ich es an die falsche Position gestellt.
Dadurch wäre bei der Eingabe: "sein" nichts sinnvolles herausgekommen

Code: Alles auswählen

;{- Information :: Für PB V4.x und PB 3.94
; Autor : Folker Linstedt
; Inhalt: Wort-Analyse
; Beginn: 17.05.2006
; Stand : 17.05.2006
;}/

;{- Deklaration
Eingabe.s ; Text-Eingabe

Ausnahme.b; Boolean für Ausnahmen

; Modale Verben, können mit Zusatzwerben benutzt werden:
; Ausnahmen: Verben mit Umlauten: dürfen, können, müssen
;             weitere : sollen, wollen

; Andere Ausnahmen: Laufen, saufen, ... (Die dummen Umlaute!) Aber ebm nicht kaufen

; Ausnahmen ohne Regel: sein, haben

Dim Worte.s(8) ; Stamm, Ich, Du, Er, Sie, Es, Wir, Ihr, Sie
Dim PersPron.s(8); PersonalPronomen

PersPron(0)="Stamm"
PersPron(1)="ich"
PersPron(2)="du "
PersPron(3)="er "
PersPron(4)="sie"
PersPron(5)="es "
PersPron(6)="wir"
PersPron(7)="ihr"
PersPron(8)="sie"

;}/

OpenConsole()
PrintN(":: WortDingli Simple V.0.1, (c) 2006 by Folker Linstedt")
PrintN("::")
PrintN(":: Bitte geben Sie ein Tu(n)-Wort in seiner Grundform in der Gegenwartsform ... ::")
PrintN(":: ... bzw. ein Verb im Infinitiv im PrAesens ein                               ::")
PrintN("")
Print("Eingabe: "): Eingabe=Input() ; Keine weitere Überprüfung
;PrintN(""); für PB 3.94 notwendig, da Input nicht allein in die Nächste Zeile springt
PrintN("")

Ausnahme=0; Ausnahmen müssten in einer Datenbank aufgenommen werden


If Eingabe="sein"
  Worte(1)="bin"
  Worte(2)="bist"
  Worte(3)="ist"
  Worte(6)="sind"
  Worte(7)="seit"
  Ausnahme=1
EndIf

; Folgenden 3 Zeilen sollen aus Umgangssprache Hochdeutsch mach'n
If Mid(Eingabe,Len(Eingabe)-1,1)<>"e"
  Eingabe=Left(Eingabe,Len(Eingabe)-1)+"en"
EndIf

If Eingabe="haben"
  Worte(1)="habe"
  Worte(2)="hast"; Statt "habst"
  Worte(3)="hat"; Statt "habt"
  Worte(6)="haben"
  Worte(7)="habt"
  Ausnahme=1
EndIf

If Eingabe="sollen" ; Ausnahmen mit Umlauten sind irgendwie umständlicher in der Console
  Worte(0)=Left(Eingabe,Len(Eingabe)-2); Stamm für Mehrzahl
  Worte(1)="soll"; Stamm ... bei dürfen -> darf, bei müssen -> muss, bei wollen -> will
  Worte(2)=Worte(1)+"st"
  ; -> bei musst fällt ein "s" weg, weil drei auf einander folgen, und es kein
  ;  zusammengesetztes Substantiv ist wie bei Schlosssickergrube, Schifffahrt
  Worte(3)=Worte(1); Wie "ich"
  Worte(6)=Eingabe
  Worte(7)=Worte(0)+"t" ; diesmal nicht wie "Er"
  Ausnahme=1
EndIf
  

If Ausnahme=0  
  Worte(0)=Left(Eingabe,Len(Eingabe)-2); Macht aus "gehen" -> "geh"
  
  Worte(1)=Worte(0)+"e"
  Worte(2)=Worte(0)+"st"
  Worte(3)=Worte(0)+"t"
  
  Worte(6)=Worte(0)+"en"
  Worte(7)=Worte(0)+"t" ; meist wie er, aber ebm nicht immer >> Ausnahmen
EndIf

Worte(4)=Worte(3) ; "Sie" ist wie "Er"
Worte(5)=Worte(3) ; "Es"  ist wie "Er"
Worte(8)=Worte(6) ; "Sie" ist wie "wir"

For i=1 To 8 ; Auch wenn Wir/Sie und Er/Sie/Es gleich sind, ist es für die Ausgabe einfacher
  PrintN("  "+PersPron(i)+" "+Worte(i))
Next

Input() ; Warte bis Enter
Das Programm kann noch nix, dass aber dafür ganz gut
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Noch mehr CODE

Code: Alles auswählen

;{- Information :: Für PB V4.x und PB 3.94
; Autor : Folker Linstedt
; Inhalt: Wort-Analyse
; Beginn: 17.05.2006
; Stand : 18.05.2006
;}/

;{- Deklaration
Eingabe.s ; Text-Eingabe

Ausnahme.b; Boolean für Ausnahmen

; Modale Verben, können mit Zusatzwerben benutzt werden:
; Ausnahmen: Verben mit Umlauten: dürfen, können, müssen
;             weitere : sollen, wollen

; Andere Ausnahmen: Laufen, saufen, ... (Die dummen Umlaute!) Aber ebm nicht kaufen

; Ausnahmen ohne Regel: sein, haben


; Das Global muss bei PB 3.94 wieder entfernt werden!!!
Global Dim Worte.s(8) ; Stamm, Ich, Du, Er, Sie, Es, Wir, Ihr, Sie
Global Dim PersPron.s(8); PersonalPronomen
Global Dim Vokale.s(4); Dim Vokale.c(4) wegen der PB 3.94 Kompatibilität, aber ohne Global
; Vokale + Umls
Global Dim Umls.s(2); Umlaute von Vokalen getrennt, weil sie unter der Console anders erkannt werden

PersPron(0)="Stamm"
PersPron(1)="ich"
PersPron(2)="du "
PersPron(3)="er "
PersPron(4)="sie"
PersPron(5)="es "
PersPron(6)="wir"
PersPron(7)="ihr"
PersPron(8)="sie"

Vokale(0)="a" ; Reihenfolge normalerweise: a, e, i, o, u
Vokale(3)="e"
Vokale(4)="i" ; Wegen den Umls, sind jedoch die ersten drei a, o, u
Vokale(1)="o"
Vokale(2)="u"

Umls(0)="ä" ; -> hier müssen die richtigen Codes für die Umlaute eingesetzt werden
Umls(2)="ö"
Umls(2)="ü"; Später müsste es vielleicht noch
; "au"'s, "äu"'s, "eu"'s, "ai"'s, und "ei"'s geben
;>> Enge Verknüpfung mit der Sprachausgabe.
;>> WörterBuch müsste Aussprache, Sinn und visuelle Darstellung
;>> des Wortes, der Gruppe speichern. Sinn -> mit anderen Worten verknüpfen
;}/

Procedure.b VokaKuck(s.s); Schaut, ob ein Vokal oder ein Uml in der Zeichenkette vorkommt
  Dings.b=0
  For o=0 To 4
    If FindString(s,Vokale(o),1)<>0
      Dings+1
    EndIf
  Next
  For o=0 To 2
    If FindString(s,Umls(o),1)<>0
      Dings+1 ; Urml aus dem Ei
    EndIf  
  Next 
  ProcedureReturn Dings 
EndProcedure


OpenConsole()
PrintN(":: WortDingli Simple V.0.1, (c) 2006 by Folker Linstedt")
PrintN("::")
PrintN(":: Bitte geben Sie ein Tu(n)-Wort in seiner Grundform in der Gegenwartsform ... ::")
PrintN(":: ... bzw. ein Verb im Infinitiv im PrAesens ein                               ::")
PrintN("")
Print("Eingabe: "): Eingabe=Input() ; Keine weitere Überprüfung
;PrintN(""); für PB 3.94 notwendig, da Input nicht allein in die Nächste Zeile springt
PrintN("")

Ausnahme=0; Ausnahmen müssten in einer Datenbank aufgenommen werden

Satz.s

Satz=Eingabe+" "; + " " für Wort-Erkennung!

WortZahl=CountString(Satz, " ") 

Dim Wort.s(WortZahl) 
p.l=-1

For i=0 To WortZahl 
  If VokaKuck(StringField(Satz,i," "))<>0
    p+1
    Wort(p) = StringField(Satz,i," ")   
  EndIf 
Next ; Okay, es klappt, aber fragt mich nicht warum


For i=1 To WortZahl ; Auch wenn Wir/Sie und Er/Sie/Es gleich sind, ist es für die Ausgabe einfacher
  PrintN("  "+Wort(i))
Next

Input() ; Warte bis Enter
Dieser trennt einen Satz in Worte. Es überprüft auch schon ansatzweise, ob es sich überhaupt um ein Wort handelt.

Ich denke, es ist möglich einen Filter zu machen, der z.B. folgendes schon kann:

Der Mann geht langsam weg.

> Mann ist groß geschrieben, also ist das Subjekt bis dorthin.
- Der Mann -
Nach dem Subjekt muss sofort das Prädikat kommen.
>> also "geht"
Der Rest ist dann irgendein Objekt oder sowas.

Subjekt, Prädikat, Objekt

>> folgendes geht nicht

Langsam geht der Mann weg.

-> hier müsste man wohl ein Wörterbuch auf "geht" ansetzen.
Und auch auf "langsam" und "weg"

Auf Mann nicht, das kann nämlich auch Frank sein. Und den kennen wir ja noch nicht :freak:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Daisy ist cool.

http://leedberg.com/glsoft/daisy/index.shtml

schaut es euch mal an und vielleicht bekommt ihr ja Ideen, die uns hier helfen.

Gruß, Folker 8)
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
winduff
Beiträge: 879
Registriert: 10.02.2006 21:05
Wohnort: Gießen
Kontaktdaten:

Beitrag von winduff »

Thema tot, was mich angeht bin ich nicht so dafür.... Spinnerei nichts mehr.

Warum poste ich: Themen nach oben "aufdringen" .... naja....
Bild
AND51 hat geschrieben:...und ich würde dein Programm aus Wut zwei mal installieren, um eines genüsslicher löschen zu können, als das andere...
Antworten