Der Anlass für dieses Thema ist das Online-Archiv von Access im Unternehmen. Gesucht war eine Möglichkeit, Beiträge zu finden, die dem Leser eines Beitrags weitere hilfreiche Informationen zum Thema liefern. Dafür gibt es verschiedene Ansätze, von denen wir uns für einen entschieden haben, der zwar etwas Handarbeit erfordert, aber recht sinnvolle Ergebnisse lieferte. Wie diese Methode aussieht und wofür sie diese noch ein setzen können, erfahren Sie im vorliegenden Beitrag.
Interessante Artikel finden
Einige Webseiten bieten dem Leser eines Artikels gleich noch eine Liste weiterer Artikel an, die das gleiche oder zumindest ähnliche Themen behandeln. Das ist auch etwas für die Leser von Access im Unternehmen, haben wir uns gedacht. Nur: Wie finden wir die am besten zu einem anderen Artikel passenden Artikel
Es gab verschiedene Ansätze:
- Einer, der alle Artikel kennt, sucht zu jedem Artikel einige passende weitere Artikel aus. Nachteil: Die betroffene Person wehrte sich mit Händen und Füßen gegen diese Arbeit. Neben dem hohen initialen Aufwand war außerdem mit recht hohem Aufwand für die Integration der neuen Artikel zu rechnen, da man ja nicht nur passende Artikel zu den neuen Artikeln finden musste, sondern die neuen Artikel auch bereits vorhandenen Artikeln zuweisen musste.
- Die Leser sollen entscheiden: Wir werten einfach alle Logfiles aus und untersuchen für jeden Artikel, welche anderen Artikel am häufigsten in der gleichen Session (also durch den gleichen Leser) aufgerufen wurden. Wir haben dies probiert, aber das Ergebnis war sehr unbefriedigend: Es ergaben sich einfach keine sinnvollen Zusammenhänge zwischen den Artikeln. Das lag wohl hauptsäclich daran, dass sich nach der Veröffentlichung von Newslettern, welche die jeweils neue Ausgabe ankündigten, alle Leser gleich mal alle Artikel der Ausgabe innerhalb einer Session angesehen haben.
- Der Inhalt soll entscheiden: Wir suchen aus jedem Artikel die Wörter heraus, die besonders oft vorkommen und untersuchen die Artikel mit diesen Daten auf Gemeinsamkeiten. Auch diese Idee haben wir verworfen, weil wir keine besonders hohe Erwartungen an die Genauigkeit dieser Methode hatten.
- Schließlich haben wir uns für die letzte Methode entschieden: Wir weisen jedem Artikel eine Reihe Schlüsselwörter zu und gewichten diese zusätzlich mit den Zahlenwerten 1, 2, 3, 5 und 10. Wo zwei Artikel gemeinsame Schlüsselwörter aufweisen, werden die Zahlenwerte beider Artikel für das jeweilige Schlüsselwort addiert und so die passendsten Artikel ermittelt.
Artikel matchen
Für das Matching der Artikel haben wir ein recht praktisches Formular erstellt, das wie in Bild 1 aussieht. Das Formular ist an die Tabelle der Beiträge gebunden und enthält neben dem Namen des Beitrags noch Informationen über die Ausgabe, in welcher der Beitrag erschienen ist. Darunter befinden sich gleich drei größere Steuerelemente. Das linke ist ein Unterformular, mit dem der Benutzer die Attribute auswählen und diese mit einer Priorität versehen kann. Das mittlere ist ebenfalls ein Unterformular. Es zeigt die entsprechend der im linken Unterformular festgelegten Attribute passendsten Artikel an.
Bild 1: Dieses Formular enthält alle Funktionen zum Matching von Datensätzen und zeigt auch gleich noch das aktuelle Ergebnis an.
Schließlich lieferte das rechte beim Festlegen der Attribute eine kleine Gedächtnisstütze, falls der Benutzer mal nicht den kompletten Inhalt des Artikels aus dem Titel ableiten konnte: Das dort enthaltene Webbrowser-Steuerelement zeigt den jeweiligen Artikel aus dem Online-Archiv an. Die beiden Schaltflächen im oberen Bereich dienen schließlich dem schnellen Abgleich der Daten mit den entsprechenden Tabellen auf dem Webserver.
Datenmodell
Das Datenmodell besteht lediglich aus drei Tabellen (siehe Bild 2). tblBeitraege enthält eigentlich alle Informationen, die für den Betrieb von www.access-im-unternehmen.de nötig sind, aber in der Beispieldatenbank haben wir alle Felder bis auf BeitragID, Titel, Jahr und Ausgabe entfernt. Die Tabelle tblAttribute enthält schlicht ein Primärschlüsselfeld und die zuzuweisenden Attribute. Das Feld Attribute besitzt einen eindeutigen Index, damit kein Attribut zweimal vorkommen kann. Die Verknüpfungstabelle tblBeitraegeAttribute enthält die eigentlich für diese Anwendung wichtigen Daten und ist für die Zuweisung der Attribute zu den Beiträgen sowie für deren Gewichtung verantwortlich. Die beiden Felder BeitragID und AttributID sind jeweils als Nachschlagefeld ausgelegt und mit den beiden Tabellen tblBeitraege und tblAttribute verknüpft.
Bild 2: Das Datenmodell der Beispieldatenbank
Das Formular frmPassendeBeitraege