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.TEXT
weist den Typ (sprich den Ursprung des Attributes) zu.dts.Category.TEXT
signalisiert den Textkorpus als Ursprung,dts.Category.MANUAL
dagegen 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
str
umgewandelt. 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: