Natural Language Processing mit PyTorch -  Delip Rao,  Brian McMahan

Natural Language Processing mit PyTorch (eBook)

Intelligente Sprachanwendungen mit Deep Learning erstellen
eBook Download: EPUB
2019 | 1. Auflage
250 Seiten
O'Reilly Verlag
978-3-96010-325-7 (ISBN)
Systemvoraussetzungen
36,90 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
Sprachanwendungen wie Amazon Alexa und Google Translate sind heute allgegenwärtig. Grundlage dafür ist das Natural Language Processing (NLP), das zahllose Möglichkeiten für die Entwicklung intelligenter, Deep-Learning-basierter Anwendungen eröffnet. In diesem Buch lernen Sie die neuesten Techniken zur Verarbeitung von Sprache kennen und nutzen dabei das flexible Deep-Learning-Framework PyTorch. Delip Rao und Brian McMahan geben Ihnen einen Überblick über NLP-Methoden und Grundkonzepte neuronaler Netze und demonstrieren Ihnen dann, wie Sie Sprachanwendungen mit PyTorch entwickeln. Der umfangreiche Beispielcode unterstützt Sie dabei, die gezeigten Techniken nachzuvollziehen und auf Ihre konkreten Aufgabenstellungen zu übertragen. - Erkunden Sie Berechnungsgraphen und das Paradigma des überwachten Lernens - Beherrschen Sie die Grundlagen der PyTorch-Bibliothek, die für Tensor-Manipulationen optimiert wurde - Verschaffen Sie sich einen Überblick über traditionelle NLP-Konzepte und -Methoden - Machen Sie sich mit den Grundkonzepten von neuronalen Netzen vertraut - Untersuchen Sie Feedforward-Netze, wie zum Beispiel das mehrschichtige Perzeptron - Verwenden Sie Einbettungen, um Wörter, Sätze, Dokumente und andere Features darzustellen - Verstehen Sie, wie sich Sequenzdaten mit rekurrenten neuronalen Netzen modellieren lassen - Erkunden Sie Sequenzvoraussagen und generieren Sie Sequenz-zu-Sequenz-Modelle - Lernen Sie Entwurfsmuster für den Aufbau von produktionsreifen NLP-Systemen kennen 'Ein fantastisches Buch, um in NLP und Deep Learning mit PyTorch einzutauchen. Delip und Brian haben großartige Arbeit geleistet, sie erklären NLP-Konzepte verständlich und demonstrieren sie in jedem Kapitel anhand von Beispielcode, um damit praktische NLPAufgaben zu lösen.' - Liling Tan Research Scientist bei Rakuten

Delip Rao ist der Gründer von Joostware, einem in San Francisco ansässigen Beratungsunternehmen, das sich auf maschinelles Lernen und NLP-Forschung spezialisiert hat. Er ist auch Mitbegründer der Fake News Challenge, einer Initiative, die Hacker und KI-Forscher zusammenbringt, um Probleme bei der Überprüfung von Fakten in Nachrichten zu lösen. Delip hat zuvor in der NLP-Forschung und an Produkten bei Twitter und Amazon (Alexa) gearbeitet. Brian McMahan ist Forscher bei Wells Fargo mit dem Schwerpunkt NLP. Zuvor hat er bei Joostware in der NLP-Forschung gearbeitet.

Delip Rao ist der Gründer von Joostware, einem in San Francisco ansässigen Beratungsunternehmen, das sich auf maschinelles Lernen und NLP-Forschung spezialisiert hat. Er ist auch Mitbegründer der Fake News Challenge, einer Initiative, die Hacker und KI-Forscher zusammenbringt, um Probleme bei der Überprüfung von Fakten in Nachrichten zu lösen. Delip hat zuvor in der NLP-Forschung und an Produkten bei Twitter und Amazon (Alexa) gearbeitet. Brian McMahan ist Forscher bei Wells Fargo mit dem Schwerpunkt NLP. Zuvor hat er bei Joostware in der NLP-Forschung gearbeitet.

KAPITEL 2


Kurzer Abriss des traditionellen NLP


Die Verarbeitung natürlicher Sprache (NLP von engl. Natural Language Processing; eingeführt im vorherigen Kapitel) und die Computerlinguistik (CL) sind zwei Bereiche der computergestützten Untersuchung menschlicher Sprache. NLP zielt darauf ab, Methoden zu entwickeln, mit denen sich praktische Probleme lösen lassen, wie zum Beispiel Informationsextraktion, automatische Spracherkennung, maschinelle Übersetzung, Meinungsanalyse, Beantwortung von Fragen und Zusammenfassungen. CL dagegen bedient sich rechentechnischer Methoden, um Eigenschaften menschlicher Sprache zu verstehen. Wie verstehen wir Sprache? Wie erzeugen wir Sprache? Wie lernen wir Sprachen? Welche Beziehungen haben Sprachen untereinander?

In der Literatur ist üblicherweise ein Übergang der Methoden und Forscher von CL nach NLP und umgekehrt festzustellen. Lektionen von CL über Sprache bieten sich an, um Vorgesetzte in NLP zu informieren, und statistische und maschinelle Lernmethoden von NLP lassen sich auf Fragen anwenden, die die CL zu beantworten versucht. In der Tat sind aus einigen dieser Fragen eigenständige Disziplinen entstanden, wie zum Beispiel Phonologie, Morphologie, Syntax, Semantik und Pragmatik.

In diesem Buch konzentrieren wir uns auf NLP, borgen uns aber nach Lust und Laune regelmäßig Ideen bei CL aus. Bevor wir uns selbst vollkommen den Methoden mit neuronalen Netzen für NLP verschreiben – dem Schwerpunkt im übrigen Buch –, lohnt es sich, einige herkömmliche NLP-Konzepte und -Methoden aufzufrischen. Damit ist das Ziel dieses Kapitels umrissen.

Wenn Sie schon etwas Hintergrundwissen zu NLP mitbringen, können Sie dieses Kapitel überspringen. Doch vielleicht bleiben Sie auch aus Nostalgie dabei und um ein gemeinsames Vokabular für die Zukunft aufzubauen.

Korpora, Token und Typen


Alle NLP-Methoden, seien es klassische oder moderne, beginnen mit einer Textdatenmenge, dem sogenannten Korpus (Plural: Korpora). In der Regel enthält ein Korpus reinen, unformatierten Text (in ASCII- oder UTF-8-Codierung) und alle Metadaten, die dem Text zugeordnet sind. Der reine Text ist eine Folge von Zeichen (Bytes), wobei es meistens zweckmäßig ist, diese Zeichen in zusammenhängende Einheiten – die sogenannten Token – zu gliedern. Im Englischen entsprechen Token Wörtern und numerischen Folgen, die durch Whitespace-Zeichen oder Satzzeichen voneinander getrennt sind.

Als Metadaten kommen alle Hilfsinformationen infrage, die mit dem Text verbunden sind, wie zum Beispiel Identifizierer, Beschriftungen und Zeitstempel. Im Sprachgebrauch des maschinellen Lernens wird der Text zusammen mit seinen Metadaten als Instanz oder Datenpunkt bezeichnet. Beim Korpus (Abbildung 2-1), einer Sammlung von Instanzen, spricht man auch von einem Dataset. Da der Fokus dieses Buchs stark auf maschinelles Lernen ausgerichtet ist, verwenden wir die Begriffe Korpus und Dataset durchweg gleichbedeutend.

Abbildung 2-1: Der Korpus: der Ausgangspunkt von NLP-Aufgaben

Das Zerlegen von Text in Token wird als Tokenisierung bezeichnet. Zum Beispiel lässt sich der Esperanto-Satz »Maria frapis la verda sorĉistino.«1 in sechs Token zerlegen. Tokenisierung kann komplizierter werden, als den Text einfach auf Basis von nicht-alphanumerischen Zeichen aufzuteilen, wie es Abbildung 2-2 demonstriert. Für agglutinierende Sprachen wie Türkisch ist eine Trennung durch Whitespace- und Satzzeichen möglicherweise nicht ausreichend, und speziellere Techniken könnten gerechtfertigt sein. Wie die Kapitel 4 und 6 zeigen, ist es durchaus möglich, das Problem der Tokenisierung gänzlich zu umgehen, indem man Text als Stream von Bytes darstellt; für agglutinierende Sprachen wird dies sehr wichtig.

Turkish

English

kork(-mak)

(to) fear

korku

fear

korkusuz

fearless

korkusuzlaş (-mak)

(to) become fearless

korkusuzlaşmış

One who has become fearless

korkusuzlaştır(-mak)

(to) make one fearless

korkusuzlaşstırıl(-mak)

(to) be made fearless

korkusuzlaştırılmış

One who has been made fearless

korkusuzlaştırılabil(-mek)

(to) be able to be made fearless

korkusuzlaştırılabilecek

One who will be able to be made fearless

korkusuzlaştırabileceklerimiz

Ones who we can make fearless

korkusuzlaştırabileceklerimizden

From the ones who we can make fearless

korkusuzlaştırabileceklerimizdenmiş

I gather that one is one of those we can make fearless

korkusuzlaştırabileceklerimizdenmişçesine

As if that one is one of those we can make fearless

korkusuzlaştırabileceklerimizdenmişçesineyken

when it seems like that one is one of those we can make fearless

Abbildung 2-2: Tokenisierung in Sprachen wie Türkisch kann schnell kompliziert werden.

Sehen Sie sich schließlich den folgenden Tweet an:

Um Tweets zu tokenisieren, sind Hashtags und @Handles zu bewahren und Smileys wie zum Beispiel :-) und URLs als eine Einheit zu segmentieren. Sollte der Hashtag #MakeAMovieCold in ein Token oder in vier Tokens zerlegt werden? Die meisten Forscher berücksichtigen solche Dinge nur oberflächlich, und in der Tat sind viele der Entscheidungen bei der Tokenisierung willkürlich – doch diese Entscheidungen können die Genauigkeit in der Praxis deutlich mehr beeinflussen als angenommen. Oft als die Routinearbeit der Vorverarbeitung angesehen, bieten die meisten Open-Source-NLP-Pakete zum Einstieg eine vernünftige Unterstützung für die Tokenisierung. Beispiel 2-1 zeigt Beispiele von NLTK (http://www.nltk.org/) und spaCy (https://spacy.io/), zwei häufig eingesetzten Paketen für die Textverarbeitung.

Beispiel 2-1: Text tokenisieren

Input[0]

import spacy

nlp = spacy.load('en')

text = "Mary, don't slap the green witch"

print([str(token) for token in nlp(text.lower())])

Output[0]

['mary', ',', 'do', "n't", 'slap', 'the', 'green', 'witch', '.']

Input[1]

from nltk.tokenize import TweetTokenizer

tweet=u"Snow White and the Seven Degrees

#MakeAMovieCold@midnight:-)"

tokenizer = TweetTokenizer()

print(tokenizer.tokenize(tweet.lower()))

Output[1]

['snow', 'white', 'and', 'the', 'seven', 'degrees',

'#makeamoviecold', '@midnight', ':-)']

Bei Typen handelt es sich um eindeutige Token, die in einem Korpus vorhanden sind. Die Menge aller Typen ist sein Vokabular oder Lexikon. Wörter lassen sich unterscheiden in Inhaltswörter und Stoppwörter. Stoppwörter wie Artikel und Präpositionen dienen vorrangig einem grammatischen Zweck, wie Füllwörter, die die Aussage von Inhaltswörtern unterstreichen.

Feature Engineering

Die Linguistik einer Sprache zu verstehen und dieses Verständnis auf das Lösen von NLP-Problemen anzuwenden, bezeichnet man als Feature Engineering oder Merkmalskonstruktion. Das ist etwas, das wir hier minimal halten wollen, und zwar der Einfachheit halber und wegen der sprachübergreifenden Portabilität von Modellen. Doch wenn man echte Produktionssysteme aufbaut und bereitstellt, ist Feature Engineering unverzichtbar, auch wenn in jüngster Zeit das Gegenteil behauptet wurde. Für eine Einführung in Feature Engineering im Allgemeinen empfehlen wir das Buch von Zheng und Casari (2016).

Monogramme, Bigramme, Trigramme, …, N-Gramme


N-Gramme sind aufeinanderfolgende Token-Sequenzen fester Länge (N), die im Text auftreten. Ein Bigramm umfasst zwei Token, ein Monogramm besteht aus nur einem Token. Wie Beispiel 2-2 zeigt, ist es ohnehin einfach, N-Gramme aus einem Text zu generieren, doch bieten Pakete wie...

Erscheint lt. Verlag 27.11.2019
Übersetzer Frank Langenau
Verlagsort Heidelberg
Sprache deutsch
Themenwelt Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Schlagworte AI • Artificial Intelligence • CL • Computerlinguistik • Deep learning • Google Translate • KI • Künstlichen Intelligenz • Linguistischen Datenverarbeitung • Neuronale Netze • NLP • Python • Siri • Spracherkennung • Text Mining. Alexa
ISBN-10 3-96010-325-5 / 3960103255
ISBN-13 978-3-96010-325-7 / 9783960103257
Haben Sie eine Frage zum Produkt?
EPUBEPUB (Wasserzeichen)
Größe: 4,0 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Entwicklung von GUIs für verschiedene Betriebssysteme

von Achim Lingott

eBook Download (2023)
Carl Hanser Verlag GmbH & Co. KG
39,99
Das umfassende Handbuch

von Johannes Ernesti; Peter Kaiser

eBook Download (2023)
Rheinwerk Computing (Verlag)
44,90
Mit über 150 Workouts in Java und Python

von Luigi Lo Iacono; Stephan Wiefling; Michael Schneider

eBook Download (2023)
Carl Hanser Verlag GmbH & Co. KG
29,99