Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Kevin Fuchs Geändert vor über 7 Jahren
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.