Natural Language Processing (NLP) ist ein Teilbereich der Informatik, Informationstechnik und künstlichen Intelligenz, der sich mit den Interaktionen zwischen Computern und menschlichen (natürlichen) Sprachen befasst, insbesondere der Programmierung von Computern zur Verarbeitung und Analyse großer Datenmengen natürlicher Sprache.
Herausforderungen bei der Verarbeitung natürlicher Sprache beinhalten häufig Spracherkennung, Verständnis natürlicher Sprache und Erzeugung natürlicher Sprache.
Geschichte
Die Geschichte der Verarbeitung natürlicher Sprache begann im Allgemeinen in den 1950er Jahren, obwohl Arbeiten aus früheren Perioden gefunden werden können. Im Jahr 1950 veröffentlichte Alan Turing einen Artikel mit dem Titel „Intelligence“, in dem der sogenannte Turing-Test als Kriterium der Intelligenz vorgeschlagen wurde.
Das Georgetown-Experiment im Jahr 1954 beinhaltete die vollautomatische Übersetzung von mehr als 60 russischen Sätzen ins Englische. Die Autoren behaupteten, dass die maschinelle Übersetzung in drei oder fünf Jahren ein gelöstes Problem sein würde. Der reale Fortschritt verlief jedoch viel langsamer. Nach dem ALPAC-Bericht von 1966, in dem festgestellt wurde, dass zehn Jahre lang die Forschung die Erwartungen nicht erfüllt hatte, wurden die Mittel für die maschinelle Übersetzung drastisch gekürzt. Bis in die späten achtziger Jahre, als die ersten statistischen Maschinenübersetzungssysteme entwickelt wurden, wurde wenig Forschung im Bereich der maschinellen Übersetzung durchgeführt.
Einige bemerkenswert erfolgreiche Systeme für die Verarbeitung natürlicher Sprache, die in den 1960er Jahren entwickelt wurden, waren SHRDLU, ein System für natürliche Sprache, das in beschränkten „Blockwelten“ mit eingeschränktem Vokabular arbeitet, und ELIZA, eine Simulation eines Rogerianischen Psychotherapeuten, die zwischen 1964 und 1966 von Joseph Weizenbaum geschrieben wurde Keine Informationen über menschliche Gedanken oder Emotionen, ELIZA bot manchmal eine überraschend menschliche Interaktion. Wenn der „Patient“ die sehr kleine Wissensbasis überstieg, könnte ELIZA eine generische Antwort geben, beispielsweise auf „Mein Kopf tut weh“ mit „Warum sagen Sie, Ihr Kopf tut weh?“.
In den 70er Jahren begannen viele Programmierer, „konzeptuelle Ontologien“ zu schreiben, die reale Informationen in computerlesbare Daten strukturierten. Beispiele sind MARGIE (Schank, 1975), SAM (Cullingford, 1978), PAM (Wilensky, 1978), TaleSpin (Meehan, 1976), QUALM (Lehnert, 1977), Politics (Carbonell, 1979) und Plot Units (Lehnert 1981) ). In dieser Zeit wurden viele Chatterbots geschrieben, darunter PARRY, Racter und Jabberwacky.
Bis in die 1980er Jahre basierten die meisten Systeme für die Verarbeitung natürlicher Sprache auf komplexen handgeschriebenen Regeln. Ab den späten achtziger Jahren gab es jedoch eine Revolution in der Verarbeitung natürlicher Sprachen mit der Einführung maschineller Lernalgorithmen für die Sprachverarbeitung. Dies war sowohl auf die stetige Zunahme der Rechenleistung (siehe Moores Gesetz) als auch auf die allmähliche Abnahme der Dominanz der Chomsky-Theorien der Linguistik (z. B. Transformations-Grammatik) zurückzuführen, deren theoretische Grundlagen die Art der Korpuslinguistik entmutigten, die dem Ansatz des maschinellen Lernens zugrunde liegt zur Sprachverarbeitung. Einige der am frühesten verwendeten Algorithmen für maschinelles Lernen, wie etwa Entscheidungsbäume, produzierten Systeme mit harten Wenn-dann-Regeln, die den vorhandenen handschriftlichen Regeln ähnelten. Durch das Tag-of-Speech-Tagging wurde jedoch die Verwendung von Hidden-Markov-Modellen für die Verarbeitung natürlicher Sprache eingeführt. Zunehmend konzentrierte sich die Forschung auf statistische Modelle, die sanfte, probabilistische Entscheidungen treffen, die auf der Anfügung echter Werte an die Merkmale beruhen, aus denen die Eingabe besteht Daten. Beispiele für solche statistischen Modelle sind die Cache-Sprachmodelle, auf die sich viele Spracherkennungssysteme heute verlassen. Solche Modelle sind im Allgemeinen robuster, wenn sie ungewohnte Eingaben erhalten, insbesondere fehlerhafte Eingaben (wie dies für reale Daten sehr üblich ist), und sie liefern zuverlässigere Ergebnisse, wenn sie in ein größeres System mit mehreren Teilaufgaben integriert werden.
Viele der bemerkenswerten frühen Erfolge waren im Bereich der maschinellen Übersetzung zu verzeichnen, insbesondere aufgrund der Arbeit bei IBM Research, wo nach und nach kompliziertere statistische Modelle entwickelt wurden. Diese Systeme konnten die vorhandenen mehrsprachigen Textkorpora nutzen, die vom Parlament von Kanada und der Europäischen Union als Ergebnis von Gesetzen erstellt worden waren, die die Übersetzung aller Regierungsverfahren in alle Amtssprachen der entsprechenden Regierungssysteme forderten. Die meisten anderen Systeme waren jedoch auf Corpora angewiesen, die speziell für die von diesen Systemen ausgeführten Aufgaben entwickelt wurden. Dies war (und bleibt auch weiterhin) eine wesentliche Einschränkung für den Erfolg dieser Systeme. Infolgedessen wurde viel erforscht, wie man aus begrenzten Datenmengen effektiver lernen kann.
Die jüngste Forschung konzentrierte sich zunehmend auf unüberwachte und halbüberwachte Lernalgorithmen. Solche Algorithmen können aus Daten lernen, die nicht manuell mit den gewünschten Antworten kommentiert wurden, oder mithilfe einer Kombination aus kommentierten und nicht kommentierten Daten. Im Allgemeinen ist diese Aufgabe viel schwieriger als das überwachte Lernen und führt in der Regel zu weniger genauen Ergebnissen für eine bestimmte Eingangsdatenmenge. Es gibt jedoch eine enorme Menge nicht annotierter Daten (darunter unter anderem den gesamten Inhalt des World Wide Web), die oft die minderwertigen Ergebnisse ausgleichen können, wenn der verwendete Algorithmus eine ausreichend geringe zeitliche Komplexität aufweist sei praktisch.
In den 2010er Jahren waren Repräsentationslernen und maschinelle Lernmethoden mit tiefen neuronalen Netzwerken im Bereich der Verarbeitung natürlicher Sprache weit verbreitet, was zum Teil auf eine Vielzahl von Ergebnissen zurückzuführen ist, die zeigen, dass solche Techniken in vielen Aufgaben der natürlichen Sprache State-of-the-Art-Ergebnisse erzielen können. zum Beispiel bei der Sprachmodellierung, beim Parsen und vielen anderen. Populäre Techniken umfassen die Verwendung von Worteinbettungen zum Erfassen semantischer Eigenschaften von Wörtern und eine Zunahme des End-to-End-Lernens einer übergeordneten Aufgabe (z. B. Beantworten von Fragen), anstatt sich auf eine Pipeline von separaten Zwischenaufgaben zu verlassen (z. B. Teil-of-Speech-Tagging und Analyse von Abhängigkeiten). In einigen Bereichen hat diese Verschiebung wesentliche Änderungen bei der Gestaltung von NLP-Systemen zur Folge, so dass Ansätze auf der Basis eines tiefen neuronalen Netzwerks als neues Paradigma betrachtet werden können, das sich von der statistischen Verarbeitung natürlicher Sprache unterscheidet. Zum Beispiel betont der Begriff „Neural Machine Translation“ (NMT) die Tatsache, dass tief lernorientierte Ansätze zur maschinellen Übersetzung Sequenz-zu-Sequenz-Transformationen direkt erlernen, so dass keine Zwischenschritte wie Wortausrichtung und Sprachmodellierung erforderlich sind, die in der Statistik verwendet wurden maschinelle Übersetzung (SMT).
Regelbasiertes vs. statistisches NLP
In der Anfangszeit wurden viele Sprachverarbeitungssysteme durch manuelle Kodierung eines Satzes von Regeln entworfen, z. B. durch das Schreiben von Grammatiken oder das Entwerfen heuristischer Regeln zum Stemming. Dies ist jedoch im Allgemeinen nicht robust gegenüber natürlichen Sprachvariationen.
Seit der sogenannten „statistischen Revolution“ in den späten 1980er und Mitte der 1990er Jahre stützte sich die Forschung im Bereich der Verarbeitung natürlicher Sprachen stark auf maschinelles Lernen.
Das Machine-Learning-Paradigma fordert stattdessen die Verwendung statistischer Inferenz, um solche Regeln automatisch durch die Analyse von großen Korpora typischer Beispiele aus der realen Welt zu erlernen (ein Korpus (Plural, „Corpora“) ist ein Satz von Dokumenten, möglicherweise mit menschlichen oder Computer-Anmerkungen ).
Viele verschiedene Klassen von Maschinenlernalgorithmen wurden auf Aufgaben der Verarbeitung natürlicher Sprache angewendet. Diese Algorithmen verwenden eine große Anzahl von „Merkmalen“, die aus den Eingangsdaten generiert werden. Einige der am frühesten verwendeten Algorithmen, wie z. B. Entscheidungsbäume, produzierten Systeme mit harten Wenn-dann-Regeln, die den Systemen handschriftlicher Regeln ähnelten, die damals üblich waren. Zunehmend konzentrierte sich die Forschung jedoch auf statistische Modelle, die sanfte, probabilistische Entscheidungen treffen, die auf der Anbringung von realen Gewichtungen an jedes Eingabemerkmal beruhen. Solche Modelle haben den Vorteil, dass sie die relative Sicherheit vieler verschiedener möglicher Antworten ausdrücken können, und nicht nur eine, wodurch zuverlässigere Ergebnisse erzielt werden, wenn ein solches Modell als Bestandteil eines größeren Systems enthalten ist.
Systeme, die auf Machine-Learning-Algorithmen basieren, bieten gegenüber handgefertigten Regeln viele Vorteile:
Die Lernverfahren, die während des maschinellen Lernens verwendet werden, konzentrieren sich automatisch auf die häufigsten Fälle, während beim Schreiben von Regeln mit der Hand oft nicht klar ist, wohin die Anstrengung gerichtet werden soll.
Automatische Lernprozeduren können statistische Inferenzalgorithmen verwenden, um Modelle zu erzeugen, die robust sind für unbekannte Eingaben (z. B. mit Wörtern oder Strukturen, die zuvor noch nicht gesehen wurden) und für fehlerhafte Eingaben (z. B. mit falsch geschriebenen Wörtern oder versehentlich ausgelassenen Wörtern). Im Allgemeinen ist es äußerst schwierig, fehleranfällig und zeitaufwändig, solche Eingaben mit handschriftlichen Regeln ordnungsgemäß zu handhaben – oder generell, Systeme handgeschriebener Regeln zu schaffen, die weiche Entscheidungen treffen.
Systeme, die auf dem automatischen Erlernen der Regeln basieren, können einfach durch die Bereitstellung weiterer Eingabedaten genauer gemacht werden. Systeme, die auf handschriftlichen Regeln basieren, können jedoch nur durch Erhöhung der Komplexität der Regeln genauer gemacht werden, was eine viel schwierigere Aufgabe ist. Insbesondere ist die Komplexität von Systemen, die auf handwerklichen Regeln basieren, begrenzt, und darüber hinaus werden die Systeme immer unüberschaubarer. Das Erstellen von mehr Daten für die Eingabe in maschinelle Lernsysteme erfordert jedoch lediglich eine entsprechende Erhöhung der Anzahl der geleisteten Arbeitsstunden, im Allgemeinen ohne wesentliche Erhöhung der Komplexität des Anmerkungsprozesses.
Wichtige Bewertungen und Aufgaben
Im Folgenden werden einige der am häufigsten erforschten Aufgaben in der Verarbeitung natürlicher Sprache aufgeführt. Beachten Sie, dass einige dieser Aufgaben direkte reale Anwendungen haben, während andere häufiger als Unteraufgaben dienen, die bei der Lösung größerer Aufgaben helfen.
Obwohl natürliche Verarbeitungsaufgaben eng miteinander verflochten sind, werden sie der Einfachheit halber häufig in Kategorien unterteilt. Eine Grobteilung ist unten angegeben.
Syntax
Einführung in die Grammatik
Generieren Sie eine formale Grammatik, die die Syntax einer Sprache beschreibt.
Lemmatisierung
Morphologische Segmentierung
Trennen Sie Wörter in einzelne Morpheme und identifizieren Sie die Klasse der Morpheme. Die Schwierigkeit dieser Aufgabe hängt stark von der Komplexität der Morphologie (dh der Struktur der Wörter) der betrachteten Sprache ab. Englisch hat eine relativ einfache Morphologie, insbesondere die Flexionsmorphologie, und daher ist es oft möglich, diese Aufgabe vollständig zu ignorieren und alle möglichen Formen eines Wortes (z. B. „Öffnen, Öffnen, Öffnen, Öffnen“) einfach als separate Wörter zu modellieren. In Sprachen wie Türkisch oder Meitei, einer stark agglutinierten indischen Sprache, ist ein solcher Ansatz jedoch nicht möglich, da jeder Wörterbucheintrag Tausende von möglichen Wortformen aufweist.
Teil der Sprachkennzeichnung
Bestimmen Sie bei einem Satz den Wortanteil für jedes Wort. Viele Wörter, besonders häufig, können als mehrere Teile der Sprache dienen. Zum Beispiel kann „Buch“ ein Nomen („das Buch auf dem Tisch“) oder ein Verb („einen Flug buchen“) sein; „set“ kann ein Nomen, Verb oder Adjektiv sein; und „out“ kann einer von mindestens fünf verschiedenen Teilen der Sprache sein. Einige Sprachen haben mehr solche Mehrdeutigkeiten als andere. [Dubious – Diskutieren] Sprachen mit wenig Flexionsmorphologie wie Englisch sind besonders anfällig für solche Mehrdeutigkeiten. Chinesisch neigt zu einer solchen Mehrdeutigkeit, da es während der Verbalisierung eine tonale Sprache ist. Eine solche Beugung wird nicht ohne weiteres über die Einheiten vermittelt, die innerhalb der Orthographie verwendet werden, um die beabsichtigte Bedeutung zu vermitteln.
Parsing
Bestimmen Sie den Analysebaum (grammatische Analyse) eines bestimmten Satzes. Die Grammatik für natürliche Sprachen ist mehrdeutig und typische Sätze haben mehrere mögliche Analysen. In der Tat, vielleicht überraschenderweise, kann es für einen typischen Satz Tausende von möglichen Parses geben (von denen die meisten für einen Menschen völlig unsinnig erscheinen). Es gibt zwei Haupttypen des Parsens, das Abhängigkeits-Parsing und das Wahlkreis-Parsing. Das Abhängigkeitsparsing konzentriert sich auf die Beziehungen zwischen Wörtern in einem Satz (zum Markieren von Elementen wie Primärobjekten und Prädikaten), während das Konstantenanalyseverfahren auf den Aufbau des Parse-Baums mit einer probabilistischen kontextfreien Grammatik (PCFG) ausgerichtet ist.
Satzbruch (auch bekannt als Satzbegrenzung)
Suchen Sie nach einem Textstück die Satzgrenzen. Satzgrenzen werden oft durch Punkte oder andere Interpunktionszeichen markiert, aber dieselben Zeichen können anderen Zwecken dienen (z. B. Abkürzungen markieren).
Stemming
Wortsegmentierung
Trennen Sie einen Teil des fortlaufenden Textes in einzelne Wörter. Für eine Sprache wie Englisch ist dies ziemlich trivial, da Wörter normalerweise durch Leerzeichen getrennt werden. Einige Schriftsprachen wie Chinesisch, Japanisch und Thailändisch kennzeichnen Wortgrenzen jedoch nicht auf diese Weise, und in diesen Sprachen ist die Textsegmentierung eine bedeutende Aufgabe, die Kenntnisse des Vokabulars und der Morphologie von Wörtern in der Sprache erfordert. Manchmal wird dieser Prozess auch in Fällen wie der Erstellung von BOWs (Bag of Words) im Data Mining verwendet.
Terminologieextraktion
Das Ziel der Terminologieextraktion besteht darin, relevante Begriffe aus einem bestimmten Korpus automatisch zu extrahieren.
Semantik
Lexikalische Semantik
Was ist die rechnerische Bedeutung der einzelnen Wörter im Kontext?
Maschinenübersetzung
Übersetzen Sie automatisch Text von einer menschlichen Sprache in eine andere. Dies ist eines der schwierigsten Probleme und gehört zu einer Gruppe von Problemen, die umgangssprachlich als „AI-vollständig“ bezeichnet wird, dh alle verschiedenen Arten von Wissen, die der Mensch besitzt (Grammatik, Semantik, Fakten über die reale Welt usw.) .) um richtig zu lösen.
Named Entity Recognition (NER)
Bestimmen Sie bei einem Textstrom, welche Elemente im Text den richtigen Namen, z. B. Personen oder Orten, zugeordnet sind und welche Art von Namen (z. B. Person, Ort, Organisation) ist. Beachten Sie, dass die Großschreibung zwar dazu beitragen kann, benannte Entitäten in Sprachen wie Englisch zu erkennen, diese Informationen können jedoch nicht dazu beitragen, den Typ der benannten Entität zu bestimmen, und ist in jedem Fall oft ungenau oder unzureichend. Zum Beispiel wird auch das erste Wort eines Satzes großgeschrieben, und benannte Entitäten umfassen oft mehrere Wörter, von denen nur einige großgeschrieben werden. Darüber hinaus haben viele andere Sprachen in nicht-westlichen Schriften (z. B. Chinesisch oder Arabisch) überhaupt keine Großschreibung, und selbst Sprachen mit Großschreibung verwenden sie möglicherweise nicht konsequent, um Namen zu unterscheiden. Zum Beispiel werden in Deutsch alle Substantive groß geschrieben, unabhängig davon, ob es sich um Namen handelt, und in Französisch und Spanisch werden Namen, die als Adjektive dienen, nicht groß geschrieben.
Natürliche Sprachgenerierung
Konvertieren Sie Informationen aus Computerdatenbanken oder semantischen Absichten in eine lesbare menschliche Sprache.
Natürliches Sprachverständnis
Konvertieren Sie Textblöcke in formalere Darstellungen, z. B. in logische Strukturen erster Ordnung, die für Computerprogramme einfacher zu bearbeiten sind. Das Verständnis natürlicher Sprache beinhaltet die Identifizierung der beabsichtigten Semantik aus einer Vielzahl möglicher Semantik, die aus einem Ausdruck der natürlichen Sprache abgeleitet werden kann, der normalerweise die Form von organisierten Notationen von Begriffen der natürlichen Sprache hat. Einführung und Erstellung von Sprachmetamodellen und Ontologien sind jedoch empirische Lösungen. Eine explizite Formalisierung der Semantik natürlicher Sprache ohne Verwirrungen mit impliziten Annahmen wie geschlossene Weltannahme (CWA) vs. offener Weltannahme oder subjektives Ja / Nein vs. objektives Wahr / Falsch wird für den Aufbau einer Grundlage einer semantischen Formalisierung erwartet .
Optische Zeichenerkennung (OCR)
Bestimmen Sie bei einem Bild, das den gedruckten Text darstellt, den entsprechenden Text.
Frage beantworten
Bestimmen Sie bei einer Frage in der Sprache einer Person die Antwort. Typische Fragen haben eine bestimmte richtige Antwort (wie „Was ist die Hauptstadt von Kanada?“), Aber manchmal werden auch offene Fragen betrachtet (wie „Was ist der Sinn des Lebens?“). Neuere Arbeiten haben sich mit noch komplexeren Fragen beschäftigt.
Texterkennung erkennen
Bestimmen Sie bei zwei Textfragmenten, ob eines wahr ist, das andere die Negation des anderen beinhaltet oder zulässt, dass der andere entweder wahr oder falsch ist.
Beziehungsextraktion
Bestimmen Sie bei einem bestimmten Text die Beziehungen zwischen den genannten Entitäten (z. B. wer mit wem verheiratet ist).
Sentiment-Analyse (siehe auch multimodale Sentiment-Analyse)
Extrahieren Sie subjektive Informationen in der Regel aus einer Reihe von Dokumenten. Dabei werden häufig Online-Reviews verwendet, um die „Polarität“ bestimmter Objekte zu bestimmen. Es ist besonders nützlich, um Trends der öffentlichen Meinung in den sozialen Medien zu Marketingzwecken zu erkennen.
Themensegmentierung und -erkennung
Trennen Sie einen bestimmten Textblock in Segmente, von denen jedes einem Thema gewidmet ist, und identifizieren Sie das Thema des Segments.
Wortsinn Begriffsklärung
Viele Wörter haben mehr als eine Bedeutung. Wir müssen die Bedeutung auswählen, die im Kontext am sinnvollsten ist. Für dieses Problem erhalten wir normalerweise eine Liste mit Wörtern und zugehörigen Wortsinn, z. B. aus einem Wörterbuch oder aus einer Online-Ressource wie WordNet.
Diskurs
Automatische Zusammenfassung
Erstellen Sie eine lesbare Zusammenfassung eines Textabschnitts. Wird häufig verwendet, um Zusammenfassungen von Text eines bekannten Typs bereitzustellen, beispielsweise Artikel im Finanzteil einer Zeitung.
Auflösung der Auflösung
Bestimmen Sie bei einem Satz oder einem größeren Textteil, welche Wörter („Erwähnungen“) sich auf dieselben Objekte beziehen („Entitäten“). Die Anaphora-Auflösung ist ein spezifisches Beispiel für diese Aufgabe und befasst sich speziell mit dem Abgleichen von Pronomen mit den Nomen oder Namen, auf die sie sich beziehen. Die allgemeinere Aufgabe der Korrekturauflösung umfasst auch das Identifizieren sogenannter „Brückenbeziehungen“, die referenzierende Ausdrücke beinhalten. In einem Satz wie „Er betrat Johns Haus durch die Vordertür“ ist „die Haustür“ ein verweisender Ausdruck und die zu überbrückende Brückenbeziehung ist die Tatsache, dass die Tür, auf die Bezug genommen wird, die Haustür von John ist Haus (anstatt einer anderen Struktur, auf die auch verwiesen werden könnte).
Diskursanalyse
Diese Rubrik umfasst eine Reihe verwandter Aufgaben. Eine Aufgabe besteht darin, die Diskursstruktur von zusammenhängendem Text zu identifizieren, dh die Art der Diskursbeziehungen zwischen Sätzen (zB Ausarbeitung, Erklärung, Kontrast). Eine weitere mögliche Aufgabe ist das Erkennen und Klassifizieren der Sprachakte in einem Textblock (z. B. Ja-Nein-Frage, Inhaltsfrage, Aussage, Behauptung usw.).
Rede
Spracherkennung
Bestimmen Sie anhand eines Soundclips einer oder mehrerer Personen die Textdarstellung der Rede. Dies ist das Gegenteil von Text zu Sprache und ist eines der äußerst schwierigen Probleme, die umgangssprachlich als „AI-vollständig“ bezeichnet werden (siehe oben). In der natürlichen Sprache gibt es kaum Pausen zwischen aufeinanderfolgenden Wörtern, und daher ist die Sprachsegmentierung eine notwendige Teilaufgabe der Spracherkennung (siehe unten). Es sei auch bemerkt, dass in den meisten gesprochenen Sprachen die Töne, die aufeinanderfolgende Buchstaben darstellen, in einem als Koartikulation bezeichneten Prozess ineinander übergehen, so dass die Umwandlung des analogen Signals in diskrete Zeichen ein sehr schwieriger Prozess sein kann.
Sprachsegmentierung
Trennen Sie den Soundclip einer Person oder von Personen, die sprechen, in Wörter. Eine Teilaufgabe der Spracherkennung und normalerweise damit gruppiert.
Text zu Sprache
Verwandeln Sie diese Einheiten nach einem Text und erzeugen Sie eine gesprochene Darstellung. Text-to-Speech kann für Sehbehinderte verwendet werden.