AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke C# Intelligente Suche - websiten durchsuchen
Thema durchsuchen
Ansicht
Themen-Optionen

Intelligente Suche - websiten durchsuchen

Offene Frage von "geskill"
Ein Thema von marcooo · begonnen am 21. Jan 2016 · letzter Beitrag vom 22. Jan 2016
Antwort Antwort
marcooo

Registriert seit: 21. Jan 2016
1 Beiträge
 
#1

Intelligente Suche - websiten durchsuchen

  Alt 21. Jan 2016, 20:36
Hallo liebe Community,

Innerhalb meines Studiums habe ich die Aufgabe bekommen eine Software zu entwickeln, mit der es möglich sein soll folgendes Szenario zu ermöglichen:

Eine Software X wird innerhalb einer Abteilung eingesetzt und von verschiedenen Mitarbeitern betreut.
Seit längerer Zeit wurden dann sowohl firmeninterne Seiten, als auch externe (z.B. Fachforen) Internetseiten an verschiedenen Plätzen mit unterschiedlichen Informationen "erstellt".
Problem ist jetzt, durch die steigende Komplexität der eingeführten Software X entstehen immer mehr Userfragen, die alle über den Support / die Mitarbeiter laufen und so übermäßig und unnötig ausgelastet werden...
Diese Fragen könnten EIGENTLICH beantwortet werden, wenn User die Informationen an einer zentralen Stelle hätten...
Leider ist es nicht oder nur schwer möglich alles an einen Punkt zusammenzuführen...

Ziel ist es nun eine Software zu entwickeln, die angegebene "Quellen", wie z.b. das confluence von Atlassian, nach genau solchen Themen durchsucht und eine Liste wie die Google-Suche bereitstellt.
Je nach Übereinstimmung der eingegebenen Suchwörter sollen gute Ergebnisse oben und schlechtere weiter unten angezeigt werden.

Mein Ansatz war, dass interne Quellen prinzipiell leichter zu durchsuchen sind da z.T. API's vorhanden sind, die genutzt werden könnten.
Alternativ wäre es möglich auch die Suche über URL aufzurufen und das zurückgelieferte HTML-File auszuwerten.
Allerdings habe ich bei externen Seiten, sowie bei einigen internen Seiten, das Problem, dass ich an den dargestellten Inhalt quasi garnicht rankomme, da vieles über Javascript und AJAX nachgeladen wird und ich nicht so einfach ausgelesen werden kann...

Ich hoffe ich konnte mein Problem einigermaßen erklären und hoffe auf Hilfe um zumindest einen Ansatz zu finden =)

Eine mögliche Lösung wäre die Google Search Engine mit der 100 solcher Aufrufe am Tag kostenlos gemacht werden könnten.
Allerdings wird eine kostenlose Alternative benötigt, die ohne solche Limitierungen klar kommt.

Danke im Voraus =)
  Mit Zitat antworten Zitat
pesi

Registriert seit: 29. Aug 2003
Ort: 36217 Ronshausen
117 Beiträge
 
Delphi XE5 Professional
 
#2

AW: Intelligente Suche - websiten durchsuchen

  Alt 22. Jan 2016, 09:20
Hallo Marco,

irgendwie werde ich das Gefühl nicht los, dass Ihr in Eurem Unternehmen eher ein Problem mit dem Thema "Knowledge-Management" habt und Ihr das Problem von einer ganz anderen Seite angehen solltet, nämlich Eure Informationen zu konsolidieren und an einem geeigneten Platz mit geeigneten Medien abzulegen (Dokus, EIN Forum, evtl. Videoanleitungen, etc.).
Das was Du beschreibst kommt mir SEHR bekannt vor, aber gottseidank haben wir hier in unserem Unternehmen so ein "Chaos" einigermaßen überwunden Das beduete sicher Arbeit und Changemanagement aber es ist, meiner Meinung nach, sehr viel sinnvoller, zielführender und vor allem zukunftssicherer.

Grüß Peter
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#3

AW: Intelligente Suche - websiten durchsuchen

  Alt 22. Jan 2016, 12:34
Hallo Marco,

irgendwie werde ich das Gefühl nicht los, dass Ihr in Eurem Unternehmen eher ein Problem mit dem Thema "Knowledge-Management" habt und Ihr das Problem von einer ganz anderen Seite angehen solltet, nämlich Eure Informationen zu konsolidieren und an einem geeigneten Platz mit geeigneten Medien abzulegen (Dokus, EIN Forum, evtl. Videoanleitungen, etc.).
Das was Du beschreibst kommt mir SEHR bekannt vor, aber gottseidank haben wir hier in unserem Unternehmen so ein "Chaos" einigermaßen überwunden Das beduete sicher Arbeit und Changemanagement aber es ist, meiner Meinung nach, sehr viel sinnvoller, zielführender und vor allem zukunftssicherer.

Grüß Peter
Die Aufgabe ist aber letztlich, innerhalb des Studiums eine Suchmaschine zu schreiben.

Mein Vorgehen wäre:

Zuerst einmal klären, welche Systeme "angezapft" werden müssen.
Wo liegen ggfls. "feste" HTML-Seiten oder sonstige Textdateien, die ausgewertet werden müssen?
Welche Informationen können nur über eine Browser (URL) erreicht werden?
Gibt es noch weitere Quellen, wenn ja, wie sind sie erreichbar?

Anschließend prüfen, welche Quelle auf welchem Weg auswertbar ist.
Gibt es für mehrere Quellen identische Wege zur Auswertung...
Alles, was per JavaScript, Ajax oder sonstwie nachgeladen wird, hat irgendwo eine Quelle. Wo ist diese Quelle und wie ist diese auszuwerten?

Im Idealfall landet man immer bei irgendeiner Datenbank oder bei Dateien.

An Datenbanken kommt man per SQL, Dateien kann man parsen (ggfls. muss man vorher den Text irgendwie extrahieren, wie z. B. bei PDF-Dateien).

Zur Vorhaltung der für die Suche relevanten Daten käme eine Datenbank infrage.

Eine Tabelle (Fundstellen), die eine Beschreibung der Quelle und die Fundstelle enthält, sowie eine ID als technischen Schlüssel.
Bei HTML-Seiten könnte die Beschreibung z. B. der Inhalt des Title-Tags und die Quelle die URL sein, Bei PDF-Dateien als Beschreibung nur der Dateiname und als Quelle der vollständige Pfad.

Eine weitere Tabelle (Wortliste) enthält eine Wortliste.
Diese Tabelle wird beim Lesen der Dateien zur Aufnahme in die Fundstellen befüllt.
Allerdings enthält sie jedes Wort nur einmal, unabhängig davon, wie oft es, egal in welcher Fundstelle, vorkommt. Jedes Wort erhält eine ID als technischen Schlüssel.

Eine dritte Tabelle (Beziehung) sorgt für die Verbingung der Tabellen Fundstellen und Wortliste.
Sie wird zusammen mit der Wortliste aufgebaut. Für jedes Wort erhält sie den technischen Schlüssel der Fundstelle und den technischen Schlüssel des Wortes aus der Wortliste. Sie stellte also eine 1:n-Beziehung zwischen der Fundstelle und der Wortliste dar.

Zur Auswertung wird nun "nur" noch eine SQL-Abfrage benötigt, die aus einer Anwendereingabe generiert wird.

So in der Art:
SQL-Code:
select
  count(*) as Anzahl,
  f.Beschreibung,
  f.Quelle
from Fundstellen f, Beziehnung b, Wortliste w
where w.id = b.WortlisteID
and f.id = b.FundstellenID
and w.wort in (:Eingabe)
group by
  f.Beschreibung,
  f.Quelle
order by 1 desc, 2, 3
Das SQL muss dynamisch aufgebaut werden, der Parameter :Eingabe wird durch alle als Suchbegriff eingegebenen Wörter in korrekter SQL-Syntax ersetzt.

Aus der Ergebnismenge dieses SQL-Statements kann man eine HTML-Seite generieren. Die Quellen, die am Häufigsten in der Tabelle Beziehung vorkommen, dürften durch die Zählung und Gruppierung im Ergebnis vor den Quellen erscheinen, die nur einmalig in der Tabelle Beziehung vorkommen. Damit sollte sich eine einfache Gewichtung realisieren lassen.

So, das soll jetzt mal als "Ideenfutter" reichen.

Geht es in der Aufgabe um die Beschreibung, wie die Software gestaltet sein könnte, oder um eine konkrete Umsetzung?
  Mit Zitat antworten Zitat
Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#4

AW: Intelligente Suche - websiten durchsuchen

  Alt 22. Jan 2016, 13:50
Das Problem kann ganz schnell sehr kompliziert werden, da solltest du dich unbedingt einschränken! Das sieht mir nach einer Masterarbeit im Bereich information retrieval aus ^^

Entweder du beschränkst dich auf die Domain z.B. bestimmte Foren, Blogs wo Content vom Unternehmen liegt oder du erstellst dir Keywords die immer in diesem Content vorkommen und benutzt eine kostenlose Suchmaschine (z.B. Suche nach: "Produktname Produktfunktion").

Für das sammeln der Informationen benutzt du einen Crawler, z.B. Abot.

Ich denke mal es geht in die Richtung mit der kostenlosen Suchmaschine. Hier ist die Schwierigkeit Inhalte aus dem HTML Code der verschiedenen Quellen auszulesen, die allesamt anders formatiert/aufgebaut sind.

Wie du die Datenbank aufbaust hat nahpets ja schon beschrieben.
Sebastian
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz