chatbot_nlp
chatbot_nlp

Open-Source-Ressourcen für NLP-Aufgaben auf Schwedisch

Der Bereich der natürlichen Sprachverarbeitung (NLP) ist in den letzten Jahren mit einer unglaublichen Geschwindigkeit gewachsen. Modernste, aber dennoch Von populären Unternehmen und/oder Forschern auf diesem Gebiet entwickelte Open-Source-Tools wie OpenAI mit GPT-2/3, Explosion with spaCy oder StandfordNLP haben dazu beigetragen, viel Zeit und Mühe für eine Vielzahl von NLP-Aufgaben zu sparen. Für nicht-englische Sprachen, die weltweit nicht von einer Mehrheit gesprochen werden (z. B. Finnisch, Schwedisch usw.), können die Mittel jedoch begrenzt sein. Das NLP-Team von Hello Ebbot hat damit zu kämpfen, NLP-Modelle selbst zu sammeln und zu entwickeln. In diesem Blog verstehen wir die Schwierigkeit und teilen alle Open-Source-Ressourcen (einschließlich Modelle, Tools und Datensätze), die wir speziell für Schwedisch gefunden haben – die Sprache, die unser Kollege Ebbot hauptsächlich spricht.

Bist du so weit? Fangen wir an!

Lemmatisierung und POS-Tag

Lemmatisierung ist der Akt des Entfernens der Endungen eines Wortes, um es an die Basis- oder Wörterbuchform zurückzugeben, die normalerweise als "Lemma" bezeichnet wird. Klingt ziemlich niedlich, nicht wahr! Lemmatisierung gilt als eine entscheidende Aufgabe bei der Vorverarbeitung von Daten für NLP-Aufgaben, vor allem, wenn es um den Aufbau von Chatbotsgeht, weil es der Maschine ermöglicht, die menschliche Sprache genauer zu verstehen. Zum Beispiel ist das Lemma für "do" (Verb) "do" und "platforms" (Plural) wird mit "plattform"lemmatisiert. Eine weitere wichtige Aufgabe bei der Vorverarbeitung ist die POS-Kennzeichnung (Part-of-Speech). Der Name selbst ist erklärend. Bei dieser Aufgabe wird jedem Wort (und einem anderen Token) ein Teil der Sprache zugewiesen. wie Substantiv, Verb, Adjektiv usw.

Beispiel für die Verwendung des Pakets

Über Github haben wir eine zuverlässige Ressource gefunden, ein Python-Paket, mit dem Sie sowohl Lemmatisierung als auch POS-Tag für schwedischen Text in nur wenigen Codezeilen ausführen können. Durch das Umwickeln von vortrainierten UDPipe-Modellen als spaCy-Pipeline für mehr als 50 Spracheneröffnet TakeLab die Möglichkeit, Lemmatisierung und POS-Tagging effizient durchzuführen. Hier ist der Link zu ihrem Github-Repository.

NER-Datensätze für spaCy-Schulungen

SpaCy ist eine der beliebtesten Bibliotheken unter NLP-Praktizierenden und Forschern mit vortrainierten Modellen für Tagging, Parsing und Entitätserkennung, die 15 Sprachen unterstützt, als dieser Blog geschrieben wurde. SpaCy ermöglicht es Entwicklern auch, ein neues Modell für nicht unterstützte Sprachen zu trainieren, daher entschied sich das NLP-Team von Hello Ebbot, ein SpaCy NER für schwedische Entitäten zu trainieren.

Solide Datensätze zu finden, war für uns schon immer eine "Reise", aber zum Glück fanden wir einen schwedischen, manuell benoteten Korpus von einem anderen NLP-Praktizierenden, Andreas Klintberg. Das Dataset wurde jedoch für CoreNLP (im .txt-Format) angepasst, während SpaCy .json-Datei als Trainingsdatenformat erfordert. Aber keine Sorge, wir haben Sie abgedeckt! Wenn Sie zu diesem Medium-Beitrag von DataTurksgehen, können Sie ein Skript für die Konvertierung geschrieben finden, genau wie Sie Brauchen, um Ihre eigenen SpaCy NER zu trainieren.

Wir haben auch ein NER-Modell für dieses Dataset sowie schwedische fastText-Vektoren trainiert. Das Ergebnis waren 91,6 % Genauigkeit für PER (Person), 82,8 % für LOC (Standort), 73,9 % für ORG (Organisation) und 40,3 % für MISC (verschiedene).

Trainingsergebnisse für das schwedische SpaCy NER

Das Modell funktioniert sehr gut auf Menschen, Städte, populäre Organisationen und einige Straßennamen in Schweden. Wir haben aber auch gemerkt, dass es einige Straßen nicht erkennen kann, zum Beispiel: Fredriksdalsvägen. Wenn Sie wirklich einen SpaCy NER haben möchten, empfehlen wir diese Datasets von .csv in .json, um einen größeren Korpus zu haben. Andernfalls fahren Sie bitte mit dem nächsten Abschnitt fort, wenn Sie der Meinung sind, dass die Verwendung von BERT auch in Ordnung ist 👇

Schwedische BERT-Modelle

Die Schwedische Nationalbibliothek (KBLab) teilte großzügig nicht ein, sondern drei vortrainierte Sprachmodelle, die auf einer satten Menge von 15-20 GB Text trainiert wurden. Unter diesen dreien muss unserer Meinung nach der beeindruckendste "bert-base-swedish-cased-ner" sein, da er in der Übereinstimmung von Entitäten wahnsinnig präzise ist. Auf dem Github von KBLab finden Sie eine Auswertung auf NER zwischen diesem Modell und SweBERT von Arbetsförmedlingen (Schwedische Arbeitsverwaltung):

Bewertung zu verschiedenen schwedischen NER

Abhängig von den Zielen Ihrer NLP-Aufgaben können Sie entweder aus ihrem Github-Repository klonen oder eine einfache Instanziierung erzielen, die Verwendung der Huggingface-Pipeline ist ebenfalls eine weitere Option. Um diese Präzision zu erreichen, die im Vergleich zu spaCy viel höher ist, müssen Sie jedoch die Geschwindigkeit opfern, da das BERT-Modell viel länger dauert, um zu trainieren und sogar Ergebnisse zu erzielen. Deshalb haben wir beide Optionen erwähnt, so dass Sie Modelle basierend auf Ihren Entwicklungsanforderungen auswählen können.

Eine kleine Ankündigung:

Wir hoffen, dass dieser Blogbeitrag informativ ist und die gefundenen Ressourcen Ihnen zumindest helfen können, Zeit und Mühe in Ihren NLP-Aufgaben zu sparen. Wie jeder Praktiker und Forscher auf diesem Gebiet würden wir gerne unsere Erkenntnisse oder sogar Forschungen und Fallstudien teilen. Wenn Sie auch NLP-Enthusiasten wie wir sind, halten Sie bitte mindestens einmal pro Monat ein Auge auf unseren Blog-Bereich für neue Inhalte!

Verweise:

  • https://towardsdatascience.com/lemmatization-in-natural-language-processing-nlp-and-machine-learning-a4416f69a7b6

Diesen Beitrag teilen

Teilen auf facebook
Anteil auf linkedin
Teilen auf Twitter
Teilen per E-Mail

Lesen Sie mehr

Rechtschreibfehler in schwedischer Sprache automatisch korrigieren

Da unser NLP-Team von Hello Ebbot verstanden hat, dass Tippfehler einer der Gründe sein können, warum Ebbot nicht die richtige Antwort geben kann, hat es beschlossen, eine neue Funktion zur Autokorrektur von Rechtschreibfehlern zu entwickeln, insbesondere für die schwedische Sprache! Unser Rechtschreibkorrekturer berücksichtigt nicht nur den Kontext, um eine bessere Korrektur zu ermöglichen, sondern hat auch eine feste Leistung.

MEHR LESEN »