Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wie würdet ihr das angehen ... ? (https://www.delphipraxis.net/5134-wie-wuerdet-ihr-das-angehen.html)

mario.schmidt@gmx.net 25. Mai 2003 13:35


Wie würdet ihr das angehen ... ?
 
Hey alle zusammen,

Folgendes Problem versuche ich zu lösen:

Man nehme einen Text z.b. eine Tickermeldung oder ein kurze Info
in der Zeitung.

als Bsp.
----------------------------------------------------------------
Das Embargo gegen den Irak (Res. 1480) der UN ...
----------------------------------------------------------------

die Meldung hat relativ wenig Info's zu bieten.

Wenn man jetzt bestimmte Schlagwörter der Meldung nimmt, wie
z.B. Res. 1480 etc. und die Informationen dazu extern aus einer
Datenbank holt und in den Text einfügt,könnte man den Informationsgehalt
der Meldung steigern,da auch Hintergrundwissen vermittelt wird.

So nach dem Prinzip der Hyperlink's im Internet,nur mit dem Unterschied das
die Info's nicht extern zu finden sind, sondern in den Text eingefügt werden.

Habt ihr dazu ein paar Ideen und Vorschläge wie man dies angehen könnte in
Delphi ???

Danke im Vorraus.

Gruß Mario
:(

Alexander 25. Mai 2003 14:34

mhm du willst also die Infos aus dem Netz laden oder wie?
Wenn ja vergiss den Hinweis nicht, von welcher Seite du das hast ;-)

Weißt du denn genau wo diese Infos stehen? ODer musst du diese erst suchen lassen?
Naja kuck dir auf jedenfall die Indy-Komponenten an

Stanlay Hanks 25. Mai 2003 14:38

Und zusätzlich vielleicht auch noch den Thread über die Google Suche...das kann nie schaden

mario.schmidt@gmx.net 26. Mai 2003 10:15

RE: Wie würdet ihr das angehen ... ?
 
Hey alle zusammen,

die Daten aus dem Netz zu laden wäre auch denkbar.
Ich würde zum ersten Testen einfach eine lokale Datenbank benutzen.

Mir geht es eigentlich mehr um den Algorithmus bzw. umd die Lösung
bestimmte Schlagwörter durch Texte mit den entsprechenden Erläuterungen
im Ur Text auszutauschen.

Gruß Mario :shock:

mjenke 26. Mai 2003 11:31

Hallo, Mario!

Du könntest folgendes versuchen:
Delphi-Quellcode:
function SchlagworteDurchTextErsetzen(Meldung: string): string;
var
  counter: integer;
  ErklaerenderText: string;
begin
  for counter := 0 to AnzahlSchlagwoerter do begin
    while Pos(Schlagwort[counter],Meldung) <> 0 do begin
      ErklaerenderText := // Funktion, um erklärenden Text aus der Datenbank auszulesen...
      Meldung := copy(Meldung,1,Pos(Schlagwort[counter],Meldung)-1) +
                 ErklaerenderText +
                 copy(Meldung,Pos(Schlagwort[counter],Meldung)+Length(Schlagwort[counter]));
    end;
  end;
end;
Aufrufen könntest Du die Funktion über
Delphi-Quellcode:
Meldung := SchlagwortDurchTextErsetzen(Meldung);
Für diese Methode bräuchtest Du allerdings ein Array, in dem Deine Schlagworte gesammelt sind und eine Funktion, um die entsprechenden, weiterführenden Texte aus Deiner Datenbank auszulesen...

:)
Matthias

[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]

mjenke 26. Mai 2003 11:33

Oops, mir ist gerade noch ein Fehler aufgefallen...

Sollte eigentlich heissen:
Delphi-Quellcode:
Meldung := copy(Meldung,1,Pos(Schlagwort[counter],Meldung)-1) + 
                 ErklaerenderText + 
                 copy(Meldung,Pos(Schlagwort[counter],Meldung)+Length(Schlagwort[counter]),Length(Meldung));
:oops:
Matthias

[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]

Daniel B 26. Mai 2003 17:44

Hallo,

ich habe es nach Delphi-Language verschoben. Die Sparte programmieren allgemein ist nur für andere Programmiersprachen da!

Grüsse, Daniel :hi:

mario.schmidt@gmx.net 26. Mai 2003 19:59

RE:Wie würdet ihr das angehen.--jetzt wird es interessant:-)
 
Der Algorithmus funzt recht gut - DANKE an Matthias!!!,
jetzt wird es echt interressant. ;-)
Der nächste Schritt,wäre es eine gewisse Logik ein zubauen um
den Text zu Analysieren

Als Bsp.

UNO und Iran kann in einer Meldung das bedeuten und in der nächsten
etwas kanns anderes.

Ich will damit nicht gleich in Richtung KI abtrifften ... , sondern nur
Algorithmus finden , der anhand von Vorgaben wie z.B. zwei Schlagwörtern (Schleifen & Bedingungen)
oder mehr davon bzw. die Combi dessen verschiedene Teile aus der Datenbank
lesen kann, damit der neue Artikel dann auch einen Sinn ergibt.

Ich weiss es ist schwer , Gedanken zu vermitteln wenn man sich nicht beim Bier trifft ;-)

Ich versuche es mal zu beschreiben:

Der Text =

"Saddam H. - Irak - Bio Waffen - USA - George Busch" würde einen anderen Zusammenhang

ergeben

als

"Saddam H. - Irak - Bio Waffen - USA - George W. Busch"

womit der feine Unterschied beim "W" liegen würde.

Im ersten Fall, hat die USA den Jung's im Irak noch alles gesponsert und im
zweiten Fall ist alles ins Gegenteil verkehrt.

Man müsste bestimmte Combi's von Schlagwörten zu Datensätzen zuorden können, die
den Inhalt der Meldung verändern bzw. erweitern.

Gruß Mario

PS: Der Irak etc. ist nur ein Bsp.-also nicht gleich Flames senden ;-))) !!!,
für Diskussionen bin ich gerne bereit - aber nicht in diesem Forum.

Ich habe diese Bsp- nur gewählt weil es jedem noch in Erinnerung ist um die Unterschiede
zu demonstrieren.
8)

Tommi 27. Mai 2003 16:19

Mhm... das erinnert mich ein wenig an das, was ich zur Zeit (hin und wieder) treib - einen Compiler bosseln.
Zunächstmal kommt es wirklich drauf an, welche Ziele Du Dir setzt, das müßte halt ganz klar abgegrenzt, vielleicht sogar reduziert werden, weil diese Idee schon in Richtung KI geht. Dir schwebt immerhin das Einfügen eines Erklärungstextes vor - das führt nur das Problem mit sich, daß dann das Endprodukt recht beliebig und wirr aussehen könnte, also Linkverweise wären da wohl die bessere Alternative.

Compilerbau hat ne ganze Menge mit Sprachtheorie zu tun und die Beschäftigung mit solcherlei Dingen kann sehr interessant sein. Vielleicht könntest Du Dir was dazu anlesen.
Ohne jetzt ein klares Ziel vor Augen zu haben, würde ich als ersten Schritt zunächstmal die Kurznachricht "tokenizen" wollen (verzeiht mir mein mieses Deutschenglisch :p). Also die kleinsten Sinneinheiten - Sprich Worte herausfiltern. Damit wärst Du dann schonmal die Leerzeichen los und Du kannst Dich dann den Einzelelementen des Satzes widmen.

So - leider, wie Du schon richtig erkannt hast - haben einzelne Worte im jeweiligen Kontext eine grundlegend andere Bedeutung. "UNO" kann genausogut das Kartenspiel sein. Und das bedeutet, daß Du schon eine gewisse Form einer KI brauchst, die den Kontext klar erkennt.

Das ginge in Richtung semantische Analyse und trotz allem bin ich mir noch nicht sicher, wie Du dann zielgerichtet nach dem Einzelbegriff, das erweitert erklärt werden soll, suchen willst, soferns automatisch abläuft. Die Suche nach "UNO" in der Datenbank könnte ja zuerst das Kartenspiel ausspucken. Um das zu vermeiden, mußt Du erkennen, daß die Nachricht eine politische Bedeutung hat. Also könntest Du Kategorien schaffen oder eine Art Assoziationsbaum, der eine gewisse Gewichtung je nach Satzkomponenten bekommt. Die Schlüsselworte "George" "W" "Bush" sprechen schon schwer von einer politischen Bedeutung, also erhöhst Du den entsprechend Politikzähler.
Das bedeutet Vorarbeit und eine Datenbank mit vordefinierten Begriffen, die für dieses Bewertungssystem vonnöten sind. Also bedeutet das wiederum ne ganze Menge Arbeit.

Also wie schon gesagt, ich hab kein Ziel vor Augen, wollte nur meine Gedanken mitteilen.
Find dieses Projekt halt sehr interessant!


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz