3.9.3. K-Nearest Neighbour Suche (KNN)

Die K-Nearest Neighbour Suche erhät ein Siglum als Input und gibt eine Liste der ähnlichsten Bemerkungen (bzw. deren Siglen) zurück.

3.9.3.1. Vorbereiten der Umgebung

Die Vektoren werden in wittsim_data vorberechnet und anschließend dort in export-data gespeichert.

3.9.3.1.1. Cluster Modelle

Zunächst müssen die Cluster Modelle kopiert werden. Diese liegen im $(HOME) auf CAST2. Dazu in den Ordner deployment wechseln, dann die Modelle kopieren mit: make install_cluster_models

3.9.3.1.2. Tree-Tagger

Dann muss der Tree-Tagger und die Python-Module installiert werden: make install-python-modules install-tree-tagger

3.9.3.1.3. MongoDB

  • Zusätzlich muss die MongoDB installiert sein, mit Germanet Daten befüllt sein und laufen:

    • Install MongoDB

    • Importiere GermaNet in die MongoDB

      • Eine Kopie von Germanet ist verfügbar unter dem korpus Ordner, welche im LRZ Sync and Share geteilt werden kann (Kontakt: Max Hadersbeck) Import XML to MongoDB

      • Starte MongoDB

        mkdir mongodb
        mongod --dbpath ./mongodb &
        
      • Entpacke die Germanet Dateien und lade sie in die MongoDB (das kann eine ganze Weile dauern)

        python -m pygermanet.mongo_import ./GN_V120/GN_V120_XML/
        
      • Überprüfe das Setup der MongoDB + Germanet:

        from pygermanet import load_germanet
        gn = load_germanet()
        gn.synsets('gehen')
        

3.9.3.2. Vorberechnen der Vektoren und Trainieren des KNN Modells

  • Nun kann das Binary-File der Vektoren berechnet werden. Dafür kann im Verzeichnis wittsim_data einfach

    make generate
    

    aufgerufen werden, welches sowohl die Megavektoren berechnet, das KNN Modell trainiert, sowie im Anschluss unnötige Files löscht.

  • Sollten nicht alle Aufrufe (z.B. kein Trainieren des KNN Modells) gewünscht sein, können entsprechende Einzelaufrufe gestartet werden (siehe Makefile):

    make vectors
    make knn
    make clean_json
    

3.9.3.3. Starten der KNN Suche

  • Überprüfen der Richtigen Pfade in wittsim/html_button/knn_search.py und in wittsim/config.py. Diese müssen auf die richtige Vektor Datei, sowie das vortrainierte KNN Modell verweisen.

  • Das Modell kann entweder manuell gestartet werden über knn_search.py oder

  • Der Flask Server wird aufgerufen mit

    make server-run
    

3.9.3.4. Frontend Verknüpfung der KNN Suche

Die bisherige Dokumentation der Einbindung in das Frontend von WiTTFind ist hier beschrieben.