Konzeption und Entwicklung eines intelligenten Agenten zum Internet Content Mining
- Art: Diplomarbeit
- Autor: Patrick Bartels
- Abgabedatum: Oktober 2002
- Umfang: 185 Seiten
- Dateigröße: 4,3 MB
- Note: 1,0
- Institution / Hochschule: Leibniz Universität Hannover Deutschland
- ISBN (eBook): 978-3-8324-6663-3
-
ISBN (Paperback) :
978-3-8324-6663-3 P - ISBN (CD) :978-3-8324-6663-3 CD
- Sprache: Deutsch
- Prämierung:
- Arbeit zitieren: Bartels, Patrick Oktober 2002: Konzeption und Entwicklung eines intelligenten Agenten zum Internet Content Mining, Hamburg: Diplomica Verlag
- Schlagworte: Software-Agenten, Java, Web-Mining, Information-Mining, Neuronale Netze
In den Warenkorb
48,00 €
Diplomarbeit von Patrick Bartels
Gang der Untersuchung:
Zielsetzung dieser Arbeit ist es, einen Agenten zu konzipieren und zu entwickeln, der in der Lage ist, Inhalte des Internet zu sammeln und lokal abzuspeichern. Der Begriff Konzeption wird dabei in der Weise interpretiert, dass der Grobaufbau eines Agenten zum Web-Content-Mining erstellt wird, wobei hier die Beziehungen zwischen den einzelnen Komponenten und deren jeweilige Aufgabe im Vordergrund stehen. Entwicklung bedeutet ferner, dass der konzipierte Agent in einer ausgewählten Programmiersprache realisiert und getestet wird und dabei eine vorgegeben Aufgabe erfüllt. Dazu wird zuerst in Kapitel 2 eine Abgrenzung vorgenommen, welche Art von Programmen unter der Bezeichnung Agent subsumiert werden können. Es folgt eine Erläuterung der für diese Arbeit relevanten Typen und, da die Entwicklung eines intelligenten Agenten gefordert ist, zusätzlich eine Betrachtung der Frage, wann ein Agent als intelligent gilt und welche Anforderungen daraus an die Konzeption abgeleitet werden können. Hauptaufgabe des Agenten ist es, Web-Content zu „minen“, weshalb eine Abgrenzung erfolgt, welche Teile des Internet als Web-Content betrachtet werden und wie Mining abgegrenzt wird, nämlich als das Auslesen von Internetinhalten und das Abspeichern auf einem lokalen Rechner.
Die eigentliche Systementwicklung des Agenten, der PISA genannt wird (Patricks intelligenter Software Agent), erfolgt in Kapitel 3 und basiert, da es sich bei Agenten letztlich auch nur um Programme handelt, auf einem Standardmodell der Systementwicklung mit vier Phasen.
1. Phase: Analyse – Jede Entwicklung eines Programms beginnt mit einer detaillierten Analyse des Umfeldes und der Aufgaben der geplanten Software, was in Abschnitt 3.1 erfolgt. Im Falle eines Web-Content-Mining-Agenten ist die Umwelt das Internet, welches daher bezüglich Aufbau und Funktionsweise untersucht wird, wobei eine erste Eingrenzung erfolgt, wie Daten ausgelesen werden können. Betrachtet wird unter anderem der Aufbau des Internets, das heißt, wie kommt ein Browser an die Daten der Seiten und welche Fähigkeiten muss die Programmiersprache, in welcher der Agent erstellt werden soll, folglich besitzen, um diese Funktion wahrzunehmen.
Kernstück des Internets ist die Möglichkeit, nicht nur per bekannter Adresse eine Seite aufzurufen, sondern auch per Mausklick so genannten Links zu folgen, die eine Verknüpfung zwischen Seiten herstellen. Daraus resultiert für einen Agenten die Chance nicht nur Daten einer Seite zu extrahieren, sondern auch von den verbundenen Seiten, indem auch die im Quelltext als Verknüpfungen eingetragenen Seiten aufgerufen und bearbeitet werden. Dieser Vorgang ist als Crawling bekannt. Da die Adressen im Quelltext oft in einer verkürzten Schreibweise dargestellt und vom Browser in eine vollständige Adresse umgewandelt werden, muss die zugrunde liegende Systematik dem Agenten bekannt sein. Deswegen erfolgt eine Betrachtung der verschiedenen Notationen der Adressierung von Internetseiten. Sollen, wie in dieser Arbeit, Daten aus Internetseiten ausgelesen werden, muss bekannt sein, wie die Seiten beschrieben sind, die die Inhalte liefern. Die am häufigsten eingesetzte Sprache zur Auszeichnung von Internetseiten ist derzeit HTML (Hypertext Markup Language), wobei die Zukunft sicher XML (eXtensible Markup Language) gehören wird. Beide Sprachen werden in ihrer Funktionsweise dargestellt sowie einige ausgewählte alternative Darstellungsarten, wobei eine weitere Abgrenzung der Möglichkeiten der Datenextraktion anhand der technischen Realisierbarkeit erfolgt.
Zur Entwicklung ist ein Beispiel-Einsatzgebiet sinnvoll, damit die Funktionsweise vor einem realistischen Hintergrund getestet werden kann. Zwei der wichtigsten Vorteile von Agenten im Gegensatz zum Einsatz von Menschen sind die Fähigkeiten große Datenmengen pro Zeiteinheit und über einen sehr langen Zeitraum zu verarbeiten. Die Ermittlung von Aktienkursen und Optionsscheinen in festgelegten Zeitintervallen zum Aufbau einer Kursdatenbank erfordert genau diese Fähigkeiten. Ferner kann so die Transparenz der Informationen aus dem Internet erhöht werden, da nicht nur einzelne Daten ausgelesen werden können, sondern beliebig viele, die in anderen Anwendungen wie Microsoft Excel miteinander verbunden und ausgewertet werden können. So können bspw. die Preise für Währungsoptionsscheine und die Währungskurse von verschiedenen Seiten ausgelesen und einander gegenübergestellt werden. Daher werden die beiden genannten Einsatzgebiete in Abschnitt 3.1.2 näher erläutert und die auszulesenden Informationen festgelegt.
2. Phase: Konzeption – Die Konzeption in Kapitel 3.2 basiert auf den Ergebnissen der Analysephase und hat zum Ziel, einen Grobaufbau für den Agenten zu erstellen, weshalb zunächst die beiden wichtigsten Techniken zur Extraktion von Information aus Text dargestellt werden: Extraktion anhand natürlicher Sprachmuster (NLP) und anhand einer gegebenen Textstruktur. Aufgrund der für NLP-Techniken notwendigen Texte in natürlicher Sprache, eignet sich der Ansatz der Informations-Extraktion anhand der bestehenden Struktur der HTML-Seiten besser, was in Abschnitt 3.2.1.2 näher begründet wird. Daraus wird der Aufbau des Agenten abgeleitet und die einzelnen Komponenten werden in ihrer Funktion in Abschnitt 3.2.2 erläutert.
Die Funktionsweise des Agenten basiert auf der Idee, dass die Tags, die die Inhalte einer Internetseite auszeichnen, nach bestimmten Regeln gefiltert werden können. Dazu muss der Quelltext der Seite geladen und von dem Agenten bearbeitet werden. Im einfachsten Fall könnte die Vorgehensweise eine einfache Untersuchung auf Vorkommen bestimmter Muster sein, die bspw. alle zweistelligen Dezimalzahlen repräsentieren, welche ggf. abgespeichert werden könnten. Dies ist für eine präzise Beschreibung der zu extrahierenden Muster nicht ausreichend, da auf einer Seite mehrere Fundstellen des Musters existieren können. Deswegen wird im Abschnitt 3.2.2.4 die Komponente zur Auswertung des Quelltextes so entworfen, dass die Position des zu findenden Musters relativ zu einem weiteren Muster angegeben werden kann.
Aus dem beschriebenen Vorgehen leiten sich spezifische Anforderungen an eine Programmiersprache ab, die im Abschnitt 3.2.3 zusammengefasst werden.
3. Phase: Entwicklung – In der Entwicklungsphase muss zuerst eine Programmiersprache gefunden werden, welche die Anforderungen, die in den vorherigen Phasen ermittelt wurden, erfüllt, weshalb ausgewählte Sprachen diesbezüglich in Abschnitt 3.3.1 miteinander verglichen werden. Die Module des Agenten, die in der Konzeptionsphase ermittelt wurde, werden dann in Java, der als dafür am geeignetsten angesehenen Sprache, realisiert und in Abschnitt 3.3.3 beschrieben. Vorher erfolgt in Abschnitt 3.3.2 eine kurze Einführung in die verwendeten Programmpakete und Datentypen, die Java beiliegen.
4. Phase: Programmtest – Der Programmtest soll abschließend zeigen, ob der Agent die gestellten Aufgaben zufrieden stellend ausführt und wie Leistungsfähigkeit und Robustheit einzustufen sind, wobei die Bereiche Aktien und Optionsscheine getrennt betrachtet werden.
Aktien – Als Testaufgabe werden bei den Aktienkursen die 30 größten deutschen Unternehmen gewählt, die von der Deutschen Börse AG im DAX 30 zusammengefasst werden. Dabei werden zum einen die jeweiligen Kurse des XETRAHandels ausgelesen sowie zusätzlich die Kurse des außerbörslichen Handelssystems der Lang & Schwarz AG, deren Daten im Gegensatz zu den XETRA-Kursen in Echtzeit dargestellt werden. Bei den XETRA-Daten handelt es sich bei den kostenlosen Angeboten in der Regel um 15 Minuten zeitversetzte Kurse. Um die Zuverlässigkeit der angebotenen Kurse beurteilen zu können, werden alle Werte jeweils außer von den Seiten der Deutschen Börse AG und der Lang & Schwarz AG von zwei weiteren abgefragt, die dieselben Werte anbieten. So veröffentlicht die Comdirect Bank die Daten der Deutschen Börse und der Finanzdienstleister Onvista die der Lang und Schwarz AG. Daraus folgt, dass für jedes Unternehmen vier Werte abgespeichert werden (Je zweimal der Kurs der Deutschen Börse und von Lang & Schwarz).
Daraus lässt sich zum einen entnehmen, ob die Daten der Zweitanbieter (Comdirect und Onvista) korrekt und zuverlässig sind und inwiefern die Kurse des Handelssystems den Werten des XETRA-Handels entsprechen. Darüber hinaus kann anhand der Dauer der Abfragen die Leistungsfähigkeit ermittelt werden. Der Testzeitraum erstreckt sich dabei über einen Tag und wird in verschiedenen Konfigurationen durchgeführt, damit die Grenzen des Agenten ermittelt werden können. Aus den ermittelten Daten werden abschließend mögliche Weiterentwicklungen und Verbesserungen abgeleitet.
Optionsscheine – Neben Aktien werden Optionsscheinpreise ermittelt, womit besonders gut die mit Hilfe des Agenten gesteigerte Transparenz der Daten verdeutlicht werden kann. Ein Benutzer des Internet, der auf der Suche nach entsprechenden Kursen ist, kann die von vergleichbaren Produkten zweier oder mehr Emittenten nicht komfortabel vergleichen, da die Preise immer nur für einen Zeitpunkt gestellt werden. Selbst wenn ein Preis niedriger ist, muss dies nicht bedeuten, dass dies die Regel ist. Mit Hilfe des Agenten können die Preise für mehrere Produkte (nicht nur Optionsscheine) ausgelesen und abgespeichert werden, um diese mit Hilfe eines Werkzeuges wie Microsoft Excel grafisch gegenüber zu stellen. Wie bei den Aktienkursen erfolgt der Test über den Zeitraum von einem Handelstag. Es werden drei Emittenten (Citibank, Deutsche Bank und UBS Warburg) betrachtet, deren Optionsscheinpreise zu fünf verschiedenen Basispreisen (0,90 Cent, 0,95 Cent, 1,00 Cent, 1,05 Cent, 1,10 Cent) und jeweils vier verschiedenen Fälligkeitsterminen ermittelt werden. Dabei werden zur Überprüfung der Daten, wie bei den Aktien, neben den Seiten der Emittenten die der Comdirect Bank und Onvista ausgewertet.
Abschließende Beurteilung – Am Ende der Arbeit erfolgt eine Zusammenfassung der Ergebnisse des Test und der Erfahrungen bei Konzeption und Entwick- lung des Agenten. Ferner wird ein Ausblick auf die weitere Entwicklung des Web-Content-Mining unter Berücksichtigung der Ergebnisse vorgenommen.
Inhaltsverzeichnis:
| Abbildungsverzeichnis | III | |
| Tabellenverzeichnis | VI | |
| Verzeichnis der Programmlistings | VII | |
| Abkürzungsverzeichnis | X | |
| 1. | Einleitung | 1 |
| 1.1 | Motivation | 1 |
| 1.2 | Zielsetzung und Vorgehensweise der Arbeit | 2 |
| 2. | Agenten | 6 |
| 2.1 | Bedeutung von Agenten | 6 |
| 2.2 | Begriffsdefinition: Agenten und intelligente Agenten | 7 |
| 2.3 | Nutzenpotenziale intelligenter Agenten | 11 |
| 2.4 | Herausforderung „verstecktes Internet“ | 13 |
| 2.5 | Web-Content und Web-Content-Mining | 14 |
| 2.6 | Zusammenfassung | 17 |
| 3. | Systementwicklung | 18 |
| 3.1 | Analysephase | 18 |
| 3.1.1 | Technische Beschreibung des Internet | 18 |
| 3.1.1.1 | Technisches Konzept des Internet | 18 |
| 3.1.1.2 | Adressierung im WWW | 20 |
| 3.1.1.3 | Seitenbeschreibung mit HMTL | 23 |
| 3.1.1.4 | Seitenbeschreibung in XML | 27 |
| 3.1.1.5 | Alternative Darstellungsarten | 28 |
| 3.1.1.6 | Dynamische Webseiten | 30 |
| 3.1.2 | Auszulesende Inhalte | 32 |
| 3.1.2.1 | Aktienkurse | 32 |
| 3.1.2.2 | Optionsscheine | 34 |
| 3.1.3 | Ein Standardkonzept für Agenten | 36 |
| 3.1.4 | Anforderungen und Grobkonzept des Agenten | 37 |
| 3.2 | Konzeption des Agentenprogramms | 38 |
| 3.2.1 | Möglichkeiten der Informationsextraktion | 38 |
| 3.2.1.1 | Extraktion durch Analyse natürlichsprachiger Texte | 38 |
| 3.2.1.2 | Extraktion auf Basis der Textstruktur | 39 |
| 3.2.2 | Der Aufbau des Agenten | 41 |
| 3.2.2.1 | Komponenten PisaMain und FileFilter | 41 |
| 3.2.2.2 | Komponente zum Laden einer Webseite – PisaCrawler | 42 |
| 3.2.2.3 | Komponente zum Parsen der HTML-Dokumente - HtmlDocument | 44 |
| 3.2.2.4 | Komponente zum Filtern einer Website – PisaGrabber | 45 |
| 3.2.2.5 | Filtern der Muster mit regulären Ausdrücken | 48 |
| 3.2.3 | Abgeleitete Anforderungen an die Programmiersprache | 51 |
| 3.3 | Entwicklung des Agentenprogramms | 54 |
| 3.3.1 | Auswahl einer geeigneten Programmiersprache | 55 |
| 3.3.1.1 | Grundlagen der objektorientierten Programmierung | 55 |
| 3.3.1.2 | Skriptsprachen mit Objektorientierung | 58 |
| 3.3.1.2.1 | PHP | 58 |
| 3.3.1.2.2 | JavaScript | 59 |
| 3.3.1.2.3 | Perl | 61 |
| 3.3.1.3 | Höhere Programmiersprachen | 63 |
| 3.3.1.3.1 | C++ | 63 |
| 3.3.1.3.2 | C# | 65 |
| 3.3.1.3.3 | Java | 67 |
| 3.3.1.4 | Auswahl eines geeigneten Ansatzes | 70 |
| 3.3.2 | Übersicht über die benutzten Java-Module | 72 |
| 3.3.3 | Beschreibung der Programmierung der Module | 74 |
| 3.3.3.1 | Die Konfigurationsdatei des Agenten | 74 |
| 3.3.3.2 | Klasse FileFilter | 81 |
| 3.3.3.3 | Klasse PisaTask | 88 |
| 3.3.3.4 | Klasse PisaMain | 92 |
| 3.3.3.5 | Klasse PisaCrawler | 99 |
| 3.3.3.5.1 | Methode getHtmlDocuments() | 105 |
| 3.3.3.5.2 | Methode tagVectorFiltern() | 110 |
| 3.3.3.6 | Klasse HtmlDocument | 114 |
| 3.3.3.7 | Klasse PisaGrabber | 120 |
| 3.3.3.8 | Hilfsklasse Formater | 123 |
| 3.3.3.9 | Hilfsklasse HtmlReader | 128 |
| 3.3.3.10 | Hilfsklasse TimerCancel | 129 |
| 3.3.3.11 | Hilfsklasse Datei | 129 |
| 3.4 | Programmtest | 132 |
| 3.4.1 | Festlegung der auszulesenden Daten und Quellen | 133 |
| 3.4.1.1 | Aktienkurse | 133 |
| 3.4.1.2 | Optionsscheine | 140 |
| 3.4.1.3 | Nachrichtenartikel | 142 |
| 3.4.2 | Testdurchführung und Testauswertung | 143 |
| 3.4.2.1 | Aktien | 144 |
| 3.4.2.2 | Optionsscheine | 148 |
| 3.4.2.3 | Nachrichtenartikel | 151 |
| 3.4.3 | Fazit des Testes und Feststellung der Problemfelder | 153 |
| 4. | Fazit und Ausblick | 157 |
| Literaturverzeichnis | 160 | |
| Anhang | 170 | |
| A. | Empfehlungen von Quellen | 170 |
| B. | Inhalt der CD zur Arbeit | 176 |
| C. | Ehrenwörtliche Erklärung | 179 |
Perl wird and dieser Stelle nicht weiter betrachtet, da fehlende Garbage Collection, Fehlerbehandlung und Timerfunktionen die Sprache im direkten Vergleich mit C++, C# und Java schlechter aussehen lassen. Das wohl bedeutendste Argument zu Gunsten von C++ ist die Produktivität. Sind bereits Programme in C vorhanden, können diese ohne Umwege in C++ weiterverwendet werden. Hinzu kommt, dass C++ im Vergleich zu C keine vollständig neue Syntax mitbringt, so dass C-erfahrene Entwickler relativ problemlos C++ erlernen können.136 Java hingegen ist eine komplette Neuentwicklung und erfordert daher komplett neue Programme. Beide Punkte sind für diese Arbeit nicht weiter relevant, da der Agent ohnehin eine komplette Neuentwicklung ist und daher auf bestehende Systeme keine Rücksicht genommen werden muss. Ein Nachteil von Java ist ferner die im Vergleich mit C++ langsamere Geschwindigkeit, da die beschriebene Zweiteilung zwischen Compiler und Interpreter einen gewissen Overhead erzeugt. Hinzu kommt, dass die Garbage Collection in Java ebenfalls die Geschwindigkeit im Vergleich zu C++ reduziert. Eine weitere Quelle für einen Overhead ist die Tatsache, dass Java nur threadsichere Bibliotheken verwendet.137 Gegen C++ und für Java sprechen jedoch die in C++ fehlende Garbage Collection sowie die Tatsache, dass viele benötigte Funktionen nur mit Hilfe externer Pakte zur Verfügung stehen. Dies macht den Programmaufbau unnötig komplex. Eine aktuelle Tendenz bei der Entwicklung von Agenten ist die Anreicherung von objektorientierten Programmiersprachen durch agentenorientierte Bibliotheken, wobei eine Ausrichtung auf Java als Ausgangssprache zu erkennen ist.138 Agenten sollen in Zukunft nicht nur auf vielen verschiedenen Plattformen laufen, sondern sich möglichst selbstständig zwischen diesen Plattformen bewegen können, die so genannten mobilen Agenten. Soll einem Agenten die Möglichkeit der Mobilität offen gehalten werden, sollte er nicht in einer Compilersprache, sondern möglichst in einer Interpretersprache erstellt werden. Dabei müssen zwar Leistungseinbußen akzeptiert werden, jedoch kommt dies gleichzeitig dem Prinzip der späten Bindung zu Gute.139 Es existieren bereits einige Entwicklungsumgebungen für Agenten, speziell mobile Agenten, von denen eine große Zahl auf Java basiert. Eine Übersicht bieten Murch und Johnson140 sowie [...]
Wie C++ und C# beherrscht Java die Technik des Überladens. Der Compiler benutzt als Unterscheidungskriterium die Argumente, sowohl deren Typ als auch deren Anzahl. Der Rückgabewert kann nicht als Unterscheidungskriterium dienen, da Funktionen auch ohne Auffangen des Rückgabewertes benutzt werden können und Compiler wie Benutzer in diesem Fall nicht feststellen könnten, welche Funktion angesprochen werden soll. Zusammenfassend lässt sich festhalten, dass Java als Programmiersprache alle notwendigen Eigenschaften aufweist, die für die Realisierung des Agenten notwendig sind, und dass darüber hinaus durch die Unterstützung von Multithreading und Garbage Collection eine ausreichende Leistungsfähigkeit sichergestellt ist. 3.3.1.4 Auswahl eines geeigneten Ansatzes Folgende Tabelle fasst die Eigenschaften der betrachteten Programmiersprachen übersichtlich zusammen. Zu erkennen ist, dass die wesentlichen Anforderungen an eine geeignete Sprache von PHP und JavaScript nicht erfüllt werden. Bezüglich Perl schränken fehlende Garbage Collection, Timerklassen und Fehlerbehandlung die Eignung ein. Dennoch wäre eine Realisierung in Perl möglich. Ein kurzer Überblick über die Vor- und Nachteile von Perl im Vergleich mit anderen Sprachen wie Java, Python und C ist auf der Perl-Website zu finden.135 Die in den vorherigen Abschnitten dargestellten Programmiersprachen sind in der folgenden Tabelle bezüglich der notwendigen Eigenschaften einander gegenübergestellt. [...]
Sockelverbindungen über TCP/IP zur Verfügung. Dabei wird durch die Objektorientierung die genaue Realisierung der Verbindung vor dem Programmierer verborgen, der wie in C# lediglich ein Objekt vom Typ URL anlegen muss. Auf dieses kann dann wie auf eine lokale Datei mit einem Reader-Objekt zugegriffen werden, so dass sich die Umsetzung des Ladens einer Internetseite sehr einfach gestaltet.132 Zum Parsen der empfangenen Seiten kann der im Paket java.swing enthaltene XML-Parser verwendet werden. Dieser ist jedoch laut SUN bezüglich fehlerhafter HTML-Angaben unflexibel und kann falsche Ergebnisse ausgeben. Daher ist eine Eigenprogrammierung oder der Einsatz eines frei verfügbaren externen Programmpaketes zu überlegen. Um die vom Parser erzeugten Feldlisten zu Filtern, können neben einfachen Zeichenkettenfunktionen reguläre Ausdrücke verwendet werden, die der Laufzeitumgebung im Paket java.util beiliegen. Ausführliche Informationen zu regulären Ausdrücken und den benötigten Bibliotheken finden sich auf der Seite von SUN133 sowie bei Ullenboom134. Das Abspeichern in Textdateien ist wie bei C# und C++ ohne Probleme möglich. Eine Besonderheit bei Java ist die fehlende direkte Unterstützung von ODBC. SUN setzt stattdessen auf eine eigene Schnittstelle JDBC (Java Database Connectivity), zu der es allerdings eine so genannte ODBC-to-JDBC-Bridge gibt. Diese ermöglicht es, neben JDBC-Datenbanken, jede ODBC-Datenbank anzusteuern. Java besitzt, wie C#, eine Thread-sichere Umgebung, da Threads nicht nur erzeugt werden, sondern diese auch sicher nebeneinander ablaufen können. Ermöglicht wird dies vor allem durch das Setzen so genannter Locks, die den konkurrierenden Zugriff auf Ressourcen steuern, und die Synchronisation erzeugter Threads mit der Methode join() zulassen. Um ein Objekt als Thread zu realisieren, muss dieses das Objekt Thread beerben. Da Java nur Einfachvererbung zulässt, kann dieses Objekt nicht gleichzeitig ein weiteres beerben. Java besitzt im Gegensatz zu C und C++ einen Garbage Collector, der nicht mehr benötigte Elemente automatisch aus dem Arbeitsspeicher löscht, sowie in der Laufzeitumgebung enthaltenen Methoden zur Realisierung von Timer-Objekten. Hinzu kommt, im Unterschied zu C, ein integriertes Exception-Handling zur Fehlerbehandlung. [...]
In den Warenkorb
48,00 €
Link zur Arbeit:
http://www.diplom.de/ean/9783832466633
Arbeit zitieren:
Bartels, Patrick Oktober 2002: Konzeption und Entwicklung eines intelligenten Agenten zum Internet Content Mining, Hamburg: Diplomica Verlag
Schlagworte:
Software-Agenten, Java, Web-Mining, Information-Mining, Neuronale Netze



