Textsuche
Das Module textsearch ist ein Interface zum Durchsuchen einer Datenbank von
Texten. Die hier vorliegende Implementierung sucht naiv nach den angegebenen
Textfragmenten und gibt deren absolute Häufigkeit zurück. Diese Häufigkeiten
können in der Visualisierung dargestellt werden.
Zuerst wird ein Zugang zu dem jeweiligen Server benötigt, Angehörige des DSS-Lehrstuhls dazu bitte Olaf Kellermeier anfragen. Darüber hinaus ist die sogenannte Snapshot-ID (oder mehrere) anzufragen.
Hinweis
Für Fortgeschrittene: Die jeweilige Snapshot-ID kann auch direkt am API-Endpunkt angefragt werden. Dazu bitte die Dokumentation des WDC-Endpoints selbstständig konsultieren: https://dss-wdc.wiso.uni-hamburg.de/
Sobald ihr über ein Zugangstoken und Snapshot-ID verfügt, könnt ihr loslegen.
Als erstes legt ihr im Verzeichnis eures Skripts eine
.env-Datei mit folgendem Inhalt an:
Das hat den Zweck, dass Token nicht in die Skripte und damit in die
Versionierung aufgenommen werden. Diese Datei auf keinen Falls committen,
sondern via .gitignore ausschließen. dsstools liest die Variablen der
.env-Datei automatisch ein. Sollte keine .env gefunden werden, so wird ein
Fehler ausgegeben.
Anmerkung
Die Umgebungsvariablen können natürlich auf beliebigem Wege angeben werden. Viele Entwicklungseditoren bringen das häufig auch von sich aus mit. Dazu müsst ihr selbstständig recherchieren.
Nun erzeugen wir eine Instanz der Textsearch-Klasse:
Die Bezeichnung des Netzwerkes lässt sich wie folgt herausfinden:
Unter der Variable snapshots findest du dann alle Snapshots, die dir unter der
Bezeichnung zur Verfügung stehen. Falls man name_tag nicht angibt, werden alle
verfügbaren Snapshots angezeigt. Entsprechend kann dann None durch den
Snapshot-Namen ersetzt werden.
Nachdem wir zu suchende Begriffe definiert haben, senden wir eine Anfrage:
Achtung
In diesem Fall steht '"sustainable investment"' in doppelten Anführungszeichen, da es ein Leerzeichen enthält. Würden wir das nicht tun, würde die Textsuche nach beiden Wörtern ("sustainable" und "investment") durchgeführt werden. Wir wollen dagegen die Kombination "sustainable investment" erhalten. Das lässt sich durch die doppelten Anführungszeichen erledigen.
Zurückgegeben wird jeweils der Graph selbst als auch etwaige leere Antworten. Das passiert, wenn der Crawler aus technischen Problemen keine Textinhalte herunterladen konnte oder aber die Webseite insgesamt nicht mehr existiert.
Ab jetzt sind in dem Graphenobjekt unter den Attributen die absoluten Werte für die Texte hinterlegt.
Anmerkung
Alternativ ist es auch möglich, eine Liste von Domains in der Suche zu übergeben, falls man noch kein Graphen-Objekt vorliegen hat, sondern nur einige Domains prüfen möchte.
Zeichen von Attributen
Die Integration schreibt die Daten zu dem Suchauftrag direkt in das Graph-Objekt unter einem spezifischen String. Um einen Begriff im Graphen für die Darstellung zu verwenden, kommt die Hilfsklasse dts.Code zur Anwendung:
Hier passieren mehrere Dinge gleichzeitig:
dts.Category.TEXTweist den Typ (sprich den Ursprung des Attributes) zu.dts.Category.TEXTsignalisiert den Textkorpus als Ursprung,dts.Category.MANUALdagegen manuell kodierte Attribute aus dssCode.dts.Code("divestment", dts.Category.TEXT)erstellt ein Objekt, welches das Attribut "divestment" im Textkorpus sucht.- Das Objekt wird direkt in einen
strumgewandelt. Dieser lautet für das Beispiel"text:divestment"
Hinweis
Wer möchte, kann den obigen String natürlich auch manuell erstellen.
divt kann jetzt als Argument bspw. an nodes.set_sizes() übergeben werden:
Gleiches funktioniert auch für Farben: