~~REVEAL white~~ {{background>:public:bg3.jpg}} ====== multilingwis ====== Johannes Graën\\ 2015-11-10 {{background>:public:bg3.jpg}} ==== Übersicht ==== - Konzept - Demo der Anwendung - Datenaufbereitung - Datenbankvorbereitung - Suche - Ausblick {{background>:public:bg16.jpg}} ===== Konzept ===== ==== Funktionsbeschreibung ==== * Suche in multiparallelem Korpus * nach Übersetzungen von Mehrworteinheiten (//translation spotting//) * mittels Webanwendung * ohne besondere Kenntnisse vorauszusetzen * basierend auf Inhaltswörtern * Funktionswörter werden bei der Suche übersprungen (//proximity search//) * mit Anzeige der Häufigkeiten der einzelnen Übersetzungskandidaten * und (guten) Exemplaren für jeden einzelnen ==== vergleichbare Anwendungen ==== * Online-Wörterbuch mit Beispielen * Übersetzungssuche * Linguistische Korpusanfrage * allgemeine Konkordanzsuche * Beispiele * [[http://www.linguee.com/|Linguee]] * [[http://www.tradooit.com/|Tradooit]] * [[http://glosbe.com/|Glosbe]] * [[http://www.tradooit.com/|TAUS Data]] * [[http://bwananet.iula.upf.edu/indexen.htm|Bwananet]] * [[http://pub.cl.uzh.ch/purl/bilingwis/|bilingwis]] {{background>:public:bg2.jpg}} ===== Demo ===== => [[http://pub.cl.uzh.ch/purl/multilingwis]] <= {{background>:public:bg8.jpg}} ===== Datenaufbereitung ===== ==== 1. Schritt ==== * Extraktion der Texte aus ''[[http://pub.cl.uzh.ch/purl/costep|CoStEP]]'' * alle diejenigen Sprecherbeiträge, die in allen fünf Sprachen vorliegen * ≈ 150k Beiträge in je fünf Sprachen * ≈ 220m Tokens ==== 2. Schritt ==== * Annotationen * ''TreeTagger'' für Tokenisierung, PoS-Tagging und Lemmatisierung * mit [[https://pub.cl.uzh.ch:11443/sparcling/costep_xml_to_db_pipeline/tree/master/2_tokenize_tag|Anpassungen]] der Tokenisierungsregeln, Abkürzungslisten, Lexika, ... * Abbildung aller Tags der fünf verschiedenen Tagsets auf universelle PoS-Tags (12 UPOS-Tags) * Regelbasierte Satzsegmentierung mithilfe der Wortformen und Tags ==== 3. Schritt ==== * Alignierung * paarweise Satzalignierung mit ''hunalign'' * Lemmata statt Wortformen als Eingabe * paarweise Wortalignierung mit ''Giza++'' * nur Inhaltswörter als Eingabe statt ganzer Sätze * Inhaltswörter hier Nomen, Verben, Adjektive und Adverbien (gemäß UPOS-Tags) {{background>:public:bg17.jpg}} ===== Datenbankvorbereitung ===== ==== Indizierung ==== * symmetrisierte Wortalignierung als materialisierte Sicht (420m) * darauf zweistufiger Index (B-Baum) über Quell- und Zieltoken (9 GB) * Lemmata mit relevanten Fremdschlüsselwerten als materialisierte Sicht * Indizes auf Lemmata (5 GB) und Schlüsseln (mehrstufig, 5 GB) ==== Suchfunktion - Definition ==== * per Skript generierte Suchfunktionen in Datenbank * je eine pro Anzahl Suchterme (Funktion überladen) * erlaubt Offline-Generierung des Queryplans ==== Suchfunktion - Ablauf ==== - auf Suchterme passende Token finden (//hits//) * **1. Kriterium:** gleiches Satzsegment * **2. Kriterium:** nachfolgendes Token je ein bis vier Positionen nach vorangehendem * **3. Kriterium:** zwischen je zwei Token befinden sich keine weiteren mit Inhaltsworttags - Schnitt der Treffer mit symmetrisierten Wortalignierungen, anschließendes Ergänzen der dazugehörigen Lemmata - Clustern der Daten nach Lemmasequenzen der alignierten Token & Zählen der Vorkommen {{background>:public:bg9.jpg}} ===== Suche ===== ==== Ablauf (1) ==== - der Benutzer gibt im Webfrontend einen (beliebigen) Suchausdruck ein - die jeweiligen Suchterme werden lemmatisiert und nach Inhalts-/Funktionswort klassifiziert - der Datenbank-Suchfunktion wird eine Liste der identifizierten Inhaltswörter übergeben - pro Sprache wird eine nach Häufigkeit sortierte Liste korrespondierender Lemmasequenzen angezeigt - das global beste Exemplar wird eingeblendet ==== Ablauf (2) ==== {{ :public:users:graen:ml_ablauf.png }} ==== Ablauf (3) ==== * nach erfolgter Suche kann der Benutzer * eine weitere Suche mit neuen Suchausdruck starten * die Menge der Exemplare durch Auswahl einer oder mehrerer Lemmasequenzen einschränken * in den Exemplaren blättern * nach den gelisteten Lemmasequenzen in der jeweiligen Sprache suchen ==== explorative Suche ==== {{ :public:users:graen:stern.png }} {{background>:public:bg23.jpg}} ===== Ausblick ===== ==== Probleme ==== * teilweise schlechte Wortalignierung * bei sehr vielen Treffern und Alignierungen keine Ergebnisse (Speicherlimit) * Sortierheuristik bevorzugt manchmal eher fragwürdige Exemplar ==== Verbesserungsmöglichkeiten ==== * andere Alignierungsmodelle * Herausfiltern unwahrscheinlicher Alignierungen * Harmonisieren der geschlechtsspezifischen Lemmata im Deutschen * Ziffern in Lemmata durch Platzhalter ersetzen * Limitierung der Suchergebnisse durch randomisierten Index und Filtern * alternative Lemmata desambiguieren ==== Erweiterungen ==== * Datenexport der Treffer (bzw. einer Auswahl davon) * Suche nach Wortformen und/oder PoS-Tags * Kontextanzeige für das jeweilige Exemplar * Verblemmata im Deutschen um etwaige Verbpräfixe ergänzen {{background>:public:users:graen:ml_fragen.png}} ===== ======