Rao / McMahan | Natural Language Processing mit PyTorch | E-Book | sack.de
E-Book

E-Book, Deutsch, 250 Seiten

Rao / McMahan Natural Language Processing mit PyTorch

Intelligente Sprachanwendungen mit Deep Learning erstellen

E-Book, Deutsch, 250 Seiten

ISBN: 978-3-96010-325-7
Verlag: O'Reilly
Format: EPUB
Kopierschutz: Wasserzeichen (»Systemvoraussetzungen)



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.
Rao / McMahan Natural Language Processing mit PyTorch jetzt bestellen!

Weitere Infos & Material


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 sorcistino.«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 korkusuzlas (-mak) (to) become fearless korkusuzlasmis One who has become fearless korkusuzlastir(-mak) (to) make one fearless korkusuzlasstiril(-mak) (to) be made fearless korkusuzlastirilmis One who has been made fearless korkusuzlastirilabil(-mek) (to) be able to be made fearless korkusuzlastirilabilecek One who will be able to be made fearless korkusuzlastirabileceklerimiz Ones who we can make fearless korkusuzlastirabileceklerimizden From the ones who we can make fearless korkusuzlastirabileceklerimizdenmis I gather that one is one of those we can make fearless korkusuzlastirabileceklerimizdenmisçesine As if that one is one of those we can make fearless korkusuzlastirabileceklerimizdenmisç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...


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.


Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.