SHI GmbH Augsburg - Ihr Starker Partner für Search & Big Data, Apache Solr, IT Commerce Lösungen

SHI - Beratung  Entwicklung  Consulting
SHI - Beratung Entwicklung Consulting
Wir beraten unterstützen Sie mit Schulungen, Trainings und Consulting. Von der Strategieberatung bis zur Anwendungsentwicklung helfen wir Ihnen bei der Optimierung Ihrer
Geschäftsprozesse.
SHI - Fast Forward to Success
SHI - Fast Forward to Success
Geschwindigkeit zählt. Bei den Kosten und bei den Erfolgsaussichten.
Bei uns sorgen professionelles Projektmanagement und modulare Entwicklung
für Ihren raschen und effizienten Software-Projekterfolg.
SHI - Individuelle Anwendungen aus Software-Bausteinen
SHI - Individuelle Anwendungen aus Software-Bausteinen
Bei uns bekommen Sie weder Software von der Stange, noch unerprobte Eigenentwicklungen. Wir setzen auf bewährte Open-Source-Technologien und setzen Ihre individuelle Anwendung
aus passenden
Bausteinen zusammen.
SHI - Support und Service
SHI - Support und Service
Wir sind Dienstleister aus Leidenschaft und verstehen unsere Kunden.
Nach dem Projekt ist vor dem Projekt und individuelle, persönliche
Betreuung stehen bei uns ganz weit oben.

Universal AJAX Live Search

Veröffentlicht am 26.01.2017 von Daniel Wrigley

Teil II


In einem vorherigen Blog wurde eine Einführung in das Thema Klassifikation gegeben, das hiermit mit einem konkreten Use Case fortgeführt wird. Dieser zweite Teil der Blogserie wird die Vorbereitungsmaßnahmen beleuchten, die notwendig sind, um Solr als Klassifikationsmaschine einsetzen zu können. Dieser Blog behandelt also vom Starten von Solr über das Anlegen der notwendigen Collections bis hin zur Indexierung der Trainingsdaten alle Schritte.


Download der Daten

Zunächst müssen die Daten heruntergeladen werden, anhand derer das Modell für die Klassifikation berechnet werden soll. Für dieses Fallbeispiel bildet das Enron-Spam Dataset die Grundlage. Es wurde bereits mehrfach für wissenschaftliche Forschungen in diesem Umfeld verwendet. Der Einfachheit halber greifen wir auf eine vorverarbeitete Form der Mails zu. Diese wurden z.B. bereits um Spam-Nachrichten mit Buchstaben, die nicht aus dem Lateinischen Alphabet stammen, bereinigt.


Der erste Teil wird zur Modellberechnung heruntergeladen und später indexiert werden:


curl http://www.aueb.gr/users/ion/data/enron-spam/preprocessed/enron1.tar.gz -o enron1.tar.gz

 

Vorbereitung von Solr für die Klassifikation

Bevor die Daten indexiert werden, müssen noch einige weitere Maßnahmen zur Vorbereitung getroffen werden. Dafür wird Solr gestartet.


./solr start –c


Als erstes wird eine Collection für die E-Mails erstellt:
./solr create -c mails


Eine zweite Collection wird zum Speichern des berechneten Modells benötigt:
./solr create -c modelCollection


Jeglicher Inhalt der einzelnen E-Mails wird in einem „Catch All“ Feld indexiert. Es ist per Default nicht stored, was jedoch für die Streaming Expressions später benötigt wird. Daher wird die Konfiguration des Felds _text_ mittels Schema API angepasst:
curl -X POST –H 'Content-type:application/json' --data-binary '{
"replace-field":{
"name":"_text_",
"type":"text_general",
"stored":true,
"indexed":true,
"multiValued":true }
}' http://localhost:8983/solr/mails/schema


Indexierung der Daten

Somit sind die notwendigen Anpassungen für die Indexierung der Daten durchgeführt. Nach Entpacken der Daten ist ersichtlich, dass pro E-Mail eine Datei vorhanden ist und diese Nachrichten bereits „vorklassifiziert“ sind, also eine Zuweisung „Spam“ bzw. „Kein Spam“ über die Ordnerstruktur abgebildet ist. Um diese Klassifizierung zur Indexierungszeit auch in den Index zu übernehmen, wird der Parameter "literal.out_i=1" für Spam-Nachrichten und "literal.out_i=0" für Nachrichten, die kein Spam sind, bei der Indexierung mitgegeben:


./post -c mails /datasets/enron1/spam/ -params "literal.out_i=1"
./post -c mails /datasets/enron1/ham/ -params "literal.out_i=0"


Eine Suche nach allen Dokumenten mit einer Feld-Facette auf dem Feld out_i zeigt, dass sich 5172 Mails im Index befinden, darunter 1500 Spam-Mails und 3672 normale Mails.
Dies bildet nun unsere Datengrundlage für die Modellberechnung.


Der nächste und letzte Teil dieser Blogreihe beschreibt dann das tatsächliche Vorgehen für die Klassifikation mittels Streaming Expressions in Solr.

SEARCH & BIG DATA, BERATUNG, SCHULUNG, ENTWICKLUNG, SUPPORT, PUBLISHER SOLUTIONS
MIT APACHE SOLR, LUCENE, ELASTICSEARCH, SMARTLOGIC SEMAPHORE, SHI INFOPILOT