Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Anwendung der PDV 2007 Relevanz-Algorithmen für Suchmaschinen Fachhochschule Wiesbaden Studiengang Allgemeine Informatik Mohamed Berrada Mohammed Harkik.

Ähnliche Präsentationen


Präsentation zum Thema: "Anwendung der PDV 2007 Relevanz-Algorithmen für Suchmaschinen Fachhochschule Wiesbaden Studiengang Allgemeine Informatik Mohamed Berrada Mohammed Harkik."—  Präsentation transkript:

1 Anwendung der PDV 2007 Relevanz-Algorithmen für Suchmaschinen Fachhochschule Wiesbaden Studiengang Allgemeine Informatik Mohamed Berrada Mohammed Harkik 11htdig

2 2 Mohammed Harkik Übersicht 1- htdig/Algorithmus 3-Erweiterung 2 1- htdig/Algorithmus 2-Erweiterung 1 3-Erweiterung 2

3 3htdig Mohammed Harkik Backend remotei:126l:964w:36 remotei:227l:281 w:2701c:6 remotei:232l:346 w:2075c:4 I: index der Seite L: location w: Gewicht c: count Seiten werden geparst. Informationen werden in eine Datei (db.worldList) aufgezeicnet und anschliessend auf eine Datenbank geflusht. Ausschnitt der Datei db.wordlist:

4 4htdig Mohammed Harkik Backend Wordlist.cc: w: Gewicht Berechnung //Neues Wort im Document wordRef->Weight = int((1000 - location) * weight_factor); //wort schon existiert wordRef->WordCount++; wordRef->Weight += int((1000 - location) * weight_factor); Das Gewicht der Wörter, die auf der jeweiligen Seite vorkommen, wird im Backend gerechnet

5 5htdig Mohammed Harkik Frontend - Aus der Datenbank wird das Gewicht der Seiten, die das zu suchende Wort enthalten, ausgelesen. - Score berechnen: double score = „document weight“ score += date_factor * exp((thisRef->DocTime() - time(NULL))/365./864000.); score += backlink_factor * (thisRef->DocBackLinks() / (double)links);

6 6htdig Mohammed Harkik Frontend - Score jeder Seite wird gerechnet. - Seiten werden nach ihren Score sortiert,. - Je größer der score einer Seite ist, desto einen besseren Ranking bekommt sie. - Danach wird eine Template aufgerufen, die für die Darstellung zuständig ist.

7 7htdig Mohammed Harkik Übersicht 1- htdig/Algorithmus 2- Erweiterung 1 : Ähnliche Seiten 3-Erweiterung 2

8 8htdig Mohammed Harkik Problemstellung - Bei der Suche nach ein oder mehrere Wörter werden mehrere Seiten gefunden, die ähnlich sind. - Wenn die Dokumente ähnlich sind, dann haben sie fast gleiche Scores und sie werden untereinander aufgelistet. -Der Nachteil, dass der Benutzer viel Zeit verliert wenn er nur in Seiten sucht, die gleiche Inhalt haben. -Die Lösung ist das Filtern von ähnlichen Seiten.

9 9htdig Mohammed Harkik a/ Die Datei db.WordList parsen : - Beim parsen der db.WordList werden folgende Daten gebraucht : Index, das Wort und Anzahl der Wörter. remotei:1l:10w:120c:2 remotei:2l:8w:111 c:3 locali:1l:5w:98 c:2 locali:2l:2w:65 c:2 pdvi:1l:12w:153 a/ Die Datei db.WordList parsen : - Beim parsen der db.WordList werden folgende Daten gebraucht : Index, das Wort und Anzahl der Wörter. remotei:1l:10w:120c:2 remotei:2l:8w:111 c:3 locali:1l:5w:98 c:2 locali:2l:2w:65 c:2 pdvi:1l:12w:153 BackendBackend

10 10htdig Mohammed Harkik b/ X-Variable rechnen : -Für jede Seite(Index) wird eine Variable X nach diesem Algorithmus gerechnet : X = X + ASCII(Zeichen) * (PositionInWort + 1) * Count Beispiel : won und now X = X + ASCII(w) * (0+1) * 4 X = X + ASCII(n) * (0+1) * 4 X = X + ASCII(o) * (1+1) * 4 X = X + ASCII(o)* (1+1) * 4 X = X + ASCII(n) * (2+1) * 4 X = X + ASCII(w)* (2+1) * 4 b/ X-Variable rechnen : -Für jede Seite(Index) wird eine Variable X nach diesem Algorithmus gerechnet : X = X + ASCII(Zeichen) * (PositionInWort + 1) * Count Beispiel : won und now X = X + ASCII(w) * (0+1) * 4 X = X + ASCII(n) * (0+1) * 4 X = X + ASCII(o) * (1+1) * 4 X = X + ASCII(o)* (1+1) * 4 X = X + ASCII(n) * (2+1) * 4 X = X + ASCII(w)* (2+1) * 4 BackendBackend

11 11htdig Mohammed Harkik c/ Ähnlich Seiten in db.duplicate speichern : - Alle Seiten(Index), deren X-Variable bis 80 % gleich sind werden in eine Zeile der db.duplicate-Datei gespeichert. db.duplicate 1, 12, 56 und 109 sind ähnliche Seiten 3, 34, 66 und 91 sind ähnliche Seiten c/ Ähnlich Seiten in db.duplicate speichern : - Alle Seiten(Index), deren X-Variable bis 80 % gleich sind werden in eine Zeile der db.duplicate-Datei gespeichert. db.duplicate 1, 12, 56 und 109 sind ähnliche Seiten 3, 34, 66 und 91 sind ähnliche Seiten 11256 109 3346691 11256 109 3346691 BackendBackend

12 12htdig Mohammed Harkik a/ Die db.duplicate-Datei parsen : db.diplicate a/ Die db.duplicate-Datei parsen : db.diplicate 11256 109 3346691 11256 109 3346691 - In ein werden mehrere gespeichert. - Jede enthält alle Elemente einer Zeile. = [ vectorLine[0], vectorLine[1] ] = [ 1, 12, 56, 109] = [ 3, 34, 66, 91] - In ein werden mehrere gespeichert. - Jede enthält alle Elemente einer Zeile. = [ vectorLine[0], vectorLine[1] ] = [ 1, 12, 56, 109] = [ 3, 34, 66, 91] FrontendFrontend

13 13htdig Mohammed Harkik b/ Darstellung der Ergebnisse : - Es wird durch die Index-Liste iteriert und mit dem ersten Element jeder verglichen. - Ist das aktuelle Element der Index-Liste gleich das erste Element einer, werden die Links alle Elemente der gelesen und dargestellt. - Für jede wird das erte Element als Hauptseite und die anderen als Ähnliche Seiten dargestellt. - Es wird durch die Index-Liste iteriert und mit dem ersten Element jeder verglichen. - Ist das aktuelle Element der Index-Liste gleich das erste Element einer, werden die Links alle Elemente der gelesen und dargestellt. - Für jede wird das erte Element als Hauptseite und die anderen als Ähnliche Seiten dargestellt. FrontendFrontend

14 14htdig Mohammed Harkik b/ Darstellung der Ergebnisse : db.diplicate b/ Darstellung der Ergebnisse : db.diplicate www.hauptseite_0.html <------ Index = 1 www.aehnliche_seite_0.html <------ Index = 12 www.aehnliche_seite_1.html <------ Index = 56....... www.hauptseite_1.html <------ Index = 3 www.aehnliche_seite_0.html <------ Index = 34 www.aehnliche_seite_1.html <------ Index = 66........ www.hauptseite_0.html <------ Index = 1 www.aehnliche_seite_0.html <------ Index = 12 www.aehnliche_seite_1.html <------ Index = 56....... www.hauptseite_1.html <------ Index = 3 www.aehnliche_seite_0.html <------ Index = 34 www.aehnliche_seite_1.html <------ Index = 66........ 11256 109 3346691 11256 109 3346691 FrontendFrontend

15 15htdig Mohamed Berrada Übersicht 3-Erweiterung 2 1- htdig/algorithmus 2-Erweiterung 1 3-Erweiterung 2

16 16 htdig Mohamed Berrada Problemstellung Bei der bisherigen Berechnung des Seitenscores hatte das mehrfache auftreten des gesuchten Wortes im Dokument keinen grossen Einfluss. Ein Ziel was wir mit den zur Verfügung gestellten Informationen nicht erreichen könnten Je näher (dichter) die gesuchten wörter zu einander stehen desto besser das Ergebnis sein soll. Es wird nur das erste Auftreten des Wortes innerhalb des Dokuments aufgezeichnet. Was ist wenn wir folgendes habe.

17 17htdig Mohamed Berrada Suche nach Remote + Reflection db.wordlist Remotei:111L:210c:2 Reflecioni:111L:260 Remotei:122L:110c:2 Reflecioni:122L:260 Dok(111) Remote(210 ) Remote(220 ) Reflection(260 ) Dok(122) Remote(110 ) Remote(259 ) Reflection(260)

18 18htdig Mohamed Berrada Laut der vom Backend zur verfügung gestellten Informationen wird das erste Dokument besser bewertet obwohl im zweiten die wörter direkt nebeneinander stehen. Wordcluster Einführung des Begriffs Wordcluster Wir betrachten das mehrfache auftretens eines wortes innerhalb des Dokuments als eine einzige Menge wofür wir paar kenngrössen bestimmen wolllen.

19 19htdig Mohamed Berrada Backend Im Backend können wir unsere db.Wordlist mit 2 andere grössen ergänzen: 1) Mittelpunkt des Wordclusters wir brauchen nicht nur das erste auftretens des wortes sondern das zentrum des Wortes innerhalb des Dokuments. Σ (Location) /count

20 20htdig Mohamed Berrada Backend 2) Verstreung des Wordclusters (Ziel)dichtere Wordclusters werden bevorzugt Dok(111) Remote (210) Remote(220) Dok(122) Remote (110) Remote (259) Dok(111) Remote (210) Remote(220) Dok(111) Remote (210) Remote(220) Remote (210) Dok(122)

21 21htdig Mohamed Berrada Backend Unter Berücksichtigung der Dateigrösse kamen wir zu folgender Formel: dispersion_factor * (1.0 - (sumDiff * 1.0 / DateiGrösse)) neue db.wordlist remotei:210l:807w:193 remotei:227l:281w:2701 c:6 m:549 v:102

22 22htdig Mohamed Berrada Frontend Die Suche Nach mehrere Wörter: Remote Reflection Bisherige lösung: db.wordlist Dok1 Remote i:111 w:245 / Reflection i:111 w:216 Dok2 Remote i:122 w:525 / Reflection i:122 w:310 Score1 = 245 + 216 = 461 < Score2 = 525 + 310 = 835 Neue Umsetzung: 1) Die Summe der Gewichte aus dem Backend

23 23htdig Mohamed Berrada Frontend 2) Die dichte der Gesuchten Wörter Je näher (dichter) die gesuchten wörter (oder genauer die Wordclusters) zu einander stehen desto besser das Ergebnis sein soll. Suche nach: instanceof + Remote + Reflection Doc1 Doc2 (1) instanceof (2) Remote (1) instanceof (3) Reflection

24 24htdig Mohamed Berrada Frontend Für die weiteren Berechnungen wird kein Location benutzt sondern der mittelpunk des Wordclusters jeden gesuchten wortes. 1) Reihenfolge wichtig: Σ Betrag(Differenzen) Σ Betrag(Differenzen) 2) Reihenfolge unwichtig dichte_factor * (1- (maxAbstand/max_doc_size))

25 25htdig Mohamed Berrada Synonyme Synonyme müssen auch erkannt werden. Dazu gibt das Programm htfuzzy. synonyme müssen per hand in eine Datei eingetragen werden. Folgender Aufruf htfuzzy Synonymfile. Ergänzt die htdig Datenbank. Alle bisherigen erweiterungen müssen die Sysonyme bei der Berechnungen mitberücksichtigen.

26 26htdig Mohamed Berrada Synonyme db.wordlist Dokument 1: Remote i:111 w:250 / Datenbank i:111 w:230 Dokument 2: Remote i:122 w:50 / Datenbank i:122 w:230 / DB: i:122 w:300 Bisherige Lösung: Score 1 250+230=480 > Score2 50+230=280 Mit Berücksichtigung der Synonyme Score 1 250+230=480 < Score2 50+230+300=580

27 27htdig Mohamed Berrada Synonyme Möglicher Einsatz im Backend: DB und Datenbank werden als ein Wort behandelt. Ein Wortcluster, ein Mittelpunkt, eine Verstreung, ein Location, und nur ein Gewicht. !!!!!!! zu aufwendig

28 28htdig Mohamed Berrada Synonyme Frontend Bei der Suche kommen die Synonyme zum Spiel. Die suche nach Remote + Datenbank wird zu einer logischen suche nach Remote (Datenbank || DB)

29 29htdig Mohamed Berrada Andere Kriterien Das gesuchte Wort ist ein Keyword im Dokument. score += KeyWord_factor * count

30 30htdig Mohamed Berrada Andere Kriterien Das gesuchte Wort steht in einem eingehenden link Dokument was Remote enthält Remote

31 31htdig Mohamed Berrada Danke für Ihre Aufmerksamkeit


Herunterladen ppt "Anwendung der PDV 2007 Relevanz-Algorithmen für Suchmaschinen Fachhochschule Wiesbaden Studiengang Allgemeine Informatik Mohamed Berrada Mohammed Harkik."

Ähnliche Präsentationen


Google-Anzeigen