Description verbessern

Hier finden YaCy User Hilfe wenn was nicht funktioniert oder anders funktioniert als man dachte. Bei offensichtlichen Fehlern diese bitte gleich in die Bugs (http://bugs.yacy.net) eintragen.
Forumsregeln
In diesem Forum geht es um Benutzungsprobleme und Anfragen für Hilfe. Wird dabei ein Bug identifiziert, wird der thread zur Bearbeitung in die Bug-Sektion verschoben. Wer hier also einen Thread eingestellt hat und ihn vermisst, wird ihn sicherlich in der Bug-Sektion wiederfinden.

Description verbessern

Beitragvon oberon » Mi Jun 17, 2009 3:50 pm

Moin!

Häufig finde ich bei YaCy-Suchergebnissen in der description den gleichen Inhalt wie im title. Schlimmer: Oft finde ich sogar nur den link als description. Flux auf die entsprechende Webseite geschaut, ob es nicht eine bessere description gibt - und siehe da, sogar im http-Header ist eine description angegeben, die mindestens eine bessere Alternative wäre.

Dazu ein Vorschlag: Könnte man für uns nicht-Entwickler eine wohldefinierte, sich nicht häufig verändernde java-Schnittstelle im Sourcecode bereitstellen (mit Beschreibung), wo wir während des Indizierens die Webseite selbst durchsuchen, um eine gute description zu erstellen? Das könnte eine Art Wettbewerb geben, wo schließlich vielleicht die beste description engine in den Sourcecode einfließt.

Vielleicht wäre sogar eine Schnittstelle möglich, die eine individuelle, automatisierte Kategorisierung der Webseite ermöglicht, z.B. mit Tags versieht (wie Hardware, Reise, Shop, Nachrichten, usw.) und mit Wichtungen für Tags. Diese Schnittstelle könnte erneut eine Art Wettbewerb initiieren, in den Sourcecode einfließen und neue Möglichkeiten der Suche eröffnen.

Nochmal zur description: In viewtopic.php?f=5&t=1816&p=12523&hilit=description#p12523 beschreibt Orbiter, dass das description-property im meta-Feld bereits geparst wird (und ab und zu als title eingetragen wird). Man könnte es wohl leicht als erste Verbesserung als description eintragen, wenn sonst nur link oder title als description eingetragen würden.
oberon
 
Beiträge: 12
Registriert: Di Mai 26, 2009 10:09 pm

Re: Description verbessern

Beitragvon Lotus » Mi Jun 17, 2009 6:04 pm

Du möchtest also über eine Schnittstelle einen Eintrag im Index ändern?
Lotus
 
Beiträge: 1699
Registriert: Mi Jun 27, 2007 3:33 pm
Wohnort: Hamburg

Re: Description verbessern

Beitragvon apfelmaennchen » Mi Jun 17, 2009 6:21 pm

Die Angezeigte Description ist keine statische Beschreibung der Seite, sondern ein online generiertes Snippet.
Das macht insofern Sinn, als dass man sich auf Meta-Angaben in HTML nicht wirklich verlassen kann - hier steht ja oft Müll drin.

Blöd nur, wenn man Daten hat, bei denen diese Angaben ein echter Mehrwert sind!
Ich habe z.B. das selbe Problem wie oben beschrieben mit einem Import der DMOZ Daten via Surrogates.
Dieser Index hat ja für jede URL eine durch einen freiwilligen DMOZ-Editor erstellte Beschreibung und Kategoriesierung.
Bei der Suche über den via Surrogates erstellten Index ist dann allerdings die von YaCy angezeigte Description ein Standard-Snippet, welches oft mit dem Titel oder der URL identisch ist! Die wertvolle Extra-Information ist damit zunächst nicht mehr sichtbar. Im Falle Domain und Author wird aber ein Teil der Meta-Information über die neuen Navigatoren wieder zugänglich.

Grundsätzlich ist mit Surrogates aber bereits eine Standard-Schnittstelle vorhanden, über die man selbst Einfluss auf den Index nehmen kann, hier sehe ich also keine Notwendigkeit für eine weitere spezielle Description-Engine-Schnittstelle.

Gruß!
apfelmaennchen
apfelmaennchen
 
Beiträge: 429
Registriert: Mo Aug 20, 2007 7:06 pm

Re: Description verbessern

Beitragvon oberon » Do Jun 18, 2009 1:59 am

@Lotus >Du möchtest also über eine Schnittstelle einen Eintrag im Index ändern?
Ich möchte den YaCy-Sourcecode ändern und damit jeden Eintrag bei der Erstellung manipulieren (nicht erst nachdem er im Index gelandet ist). Näheres weiter unten.

@apfelmaennchen
> Die Angezeigte Description ist keine statische Beschreibung der Seite, sondern ein online generiertes Snippet.
Bedeutet das, dass die Description nicht in der YaCy-Datenbank gespeichert ist, sondern dass bei jeder Suchanfrage die gefundenen Links downgeloadet und die Webseiten analysiert werden, um ein Description-Snippet zu erzeugen? Wie dem auch sei, ich möchte die Generierung des Snippet verändern.

>Das macht insofern Sinn, als dass man sich auf Meta-Angaben in HTML nicht wirklich verlassen kann - hier steht ja oft Müll drin.
Meine Hoffnung ist, dass meist dieser Müll für den Suchenden hilfreicher ist, als eine Wiederholung von title oder link. Vielleicht liege ich da falsch.

>Grundsätzlich ist mit Surrogates aber bereits eine Standard-Schnittstelle vorhanden
Siehe: viewtopic.php?f=15&p=15646
Ja, das wäre ein Einstieg zum Experimentieren. Ich kann also folgendes tun: Ich exportiere alle URLs aus YaCy in ein xml-File, gehe die Links durch, lade nacheinander jede Webseite aus dem Internet in den Speicher, parse sie, erstelle (automatisiert) eine Description und generiere daraus wieder ein xml-File, das ich in YaCy via Surrogates einlese.

Aus Deinen DMOZ-Problemen schließe ich jedoch, dass die von mir generierte Description via Surrogates nicht die Description in YaCy wird. Vor allem aber möchte ich nicht die Webseiten nocheinmal downloaden, das tut YaCy ja bereits. Ich möchte den YaCy-Sourcecode so ändern, dass jede downgeloadete Seite durch meinen (zukünftig) selbstgeschriebenen Java-Code analysiert wird, der eine Description erzeugt, die dann in YaCy als Description verwendet wird.

Mit "Schnittstelle" meine ich in diesem Zusammenhang z.B. folgendes: Sobald YaCy eine Webseite eingelesen hat, gibt es irgendwann ein plasmaParserDocument Objekt, wo (vermutlich) in private Object text der Text der Webseite steht. Dann wird eine (noch nicht vorhandene) Funktion generateDescription(plasmaParserDocument) aufgerufen, die die Variable private final StringBuilder description von plasmaParserDocument mit Inhalt füllt. Noch schöner wäre es, wenn der Funktion generateDescription auch der ungeparste HTML-Code zur Verfügung stünde, o.ä. Wahrscheinlich passt eine solche Funktion nicht in die logische Struktur von YaCy. Deshalb meine ich mit "Schnittstelle" (evtl. nach Refactoring des Sourcecodes) eine Stelle des Java-Codes, wo Daten der Webseite hineinkommen und eine Description herauskommt. Mit "Schnittstelle mit Beschreibung" meine ich eine Erklärung, welche Daten hineinkommen und welche herauskommen sollen. An dieser Schnittstelle wäre auch eine Kategorisierung des Inhaltes möglich, wenn man den Inhalt der Webseite sehr geschickt analysiert.
oberon
 
Beiträge: 12
Registriert: Di Mai 26, 2009 10:09 pm

Re: Description verbessern

Beitragvon apfelmaennchen » Do Jun 18, 2009 6:52 am

Die Stelle im Code, die Du suchst ist vermutlich de.anomic.plasma.parser.Condenser.java Zeile 140:
Code: Alles auswählen
insertTextToWords(document.dc_description(), 3, WordReferenceRow.flag_app_dc_description, RESULT_FLAGS, true);

Hier werden aber lediglich die Wortreferenzen der Description im Index abgelegt und mit einem FLAG versehen, dass sie in der Descsription aufgetaucht sind.

Die dynamische Snippet-Erzeugung findest in de.anomic.plasma.SnippetCache.java. Es wird zuerst der Snippet-Cache konsultiert, dann der Proxy-Cache und zu aller letzt wird die URL online überprüft. Abstellen kann man dieses Verhalten mit ?verify=false im Query-String. Vorteil dieser Vorgehensweise, nicht mehr vorhandene URLs werden aus dem Index entfernt!

Im Zuge der neuen Bookmarks arbeite ich bereits an einer "extra" DB (Index), die Metadaten bzw. Annotations zu URLs aufnimmt, hier wäre dann Platz, genau für sowas wie extra Descriptions oder Kategorisierungen. Da es sich um "User"-Daten handelt macht es aus meiner Sicht Sinn, diese aus dem Standard-Index herauszuhalten.

Gruß!
apfelmaennchen
apfelmaennchen
 
Beiträge: 429
Registriert: Mo Aug 20, 2007 7:06 pm


Zurück zu Fragen und Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste

cron