CNN-Modell für NLP. CNN für Satzklassifizierung ist ein… | von Priyanka Kumari | Juni 2023

0
30


CNN für Satzklassifizierung ist eine NLP-Technik, die Faltungs-Neuronale Netze verwendet, um Sätze in verschiedene Kategorien oder Bezeichnungen zu klassifizieren. Bei dieser Technik wird ein CNN anhand eines großen Datensatzes von Sätzen trainiert, wobei jedem Satz eine Bezeichnung oder Kategorie zugewiesen wird [1, 2].

1. CNN-Architektur

CNN-Architektur

Die Abbildung zeigt die Architektur des CNN-Modells [3]das aus mehreren Schichten besteht:

  • Eingabeebene: Die Eingabeschicht empfängt die Eingabedaten über Token-IDs und deren Längen. Die Token-IDs stellen den Index der Wörter im Vokabular dar und ihre Länge gibt an, wie viele Token sich in jeder Sequenz befinden.
  • Einbettungsschicht: Die Einbettungsschicht wandelt die Token-IDs in dichte Vektoren fester Größe um (Einbettungsdimension), die die semantische Bedeutung der Wörter in der Eingabesequenz jeder Sequenz (batch_size, max_len, embedding_dim) von (64, 256.300) erfassen. Die Eingabesequenz wird so umgeformt, dass sie Abmessungen (batch_size, embedding_dim, max_len) von (64, 300, 256) hat, und dann in die Faltungsschichten eingespeist.
  • Faltungsschichten: Die nächste Schicht besteht aus mehreren parallelen Faltungsschichten mit unterschiedlichen Filtergrößen (filter_sizes) und der Anzahl der Filter (num_filters). Jede Faltungsschicht wendet einen Satz Filter mit derselben Kernelgröße auf die Eingabeeinbettungen an und erstellt so eine Function-Map für jeden Filter. Die Ausgabeform jeder Function-Map ist (batch_size, num_filters[i]L_out), wobei L_out die Ausgabelänge nach Anwendung der Faltungsoperation ist.
  • Maximales Pooling: Auf jede Function-Map wird über die Zeitdimension (L_out) maximales Pooling angewendet, um eine Darstellung der wichtigsten Options mit fester Länge zu erhalten. Dieser Vorgang reduziert die Dimensionalität der Function-Maps und hilft dabei, die relevantesten Options in den Daten zu extrahieren. Die Ausgabeform jeder gepoolten Function-Map ist (batch_size, num_filters[i]1).
  • Ebene abflachen: Eine Flatten-Schicht (nn.Flatten) wird hinzugefügt, um die 3D-Tensor-Ausgabe der Pooling-Schichten in einen 2D-Tensor umzuwandeln, der in die vollständig verbundene Schicht eingespeist werden kann.
  • Vollständig verbundene Schicht: Die vollständig verbundene Schicht ist eine lineare Schicht, die die Ausgabe der vorab trainierten Schicht aufnimmt und sie der gewünschten Ausgabedimensionalität zuordnet. In diesem Fall ist die Ausgabedimensionalität zwei, entsprechend der Themenkennzeichnung.

2. CNN-Code:

Hier ist ein Beispiel für CNN-Code mit Python und der beliebten Deep-Studying-Bibliothek Pytorch für NLP:

Referenz

[1] Kim, Y. (2014). Faltungs-Neuronale Netze zur Satzklassifizierung. In Proceedings of the 2014 Convention on Empirical Strategies in Pure Language Processing (EMNLP) (S. 1746–1751).

[2] Chen, Y. (2015). Faltungs-Neuronales Netzwerk zur Satzklassifizierung (Masterarbeit, College of Waterloo).

[3] Zhang, Y. & Wallace, B. (2016). Eine Sensitivitätsanalyse (und ein Leitfaden für Praktiker) von Faltungs-Neuronalen Netzen zur Satzklassifizierung. arXiv-Vorabdruck arXiv:1510.03820.

[4] ReviewTag – Analyse negativer Amazon-Produktbewertungen mithilfe von Deep Studying von Priyanka Kumari, Abschlussarbeit an der College of Houston Clear Lake.

[5] Vom Autor dieses Beitrags erstellte Abbildung, adaptiert aus dem bereitgestellten Code.



Source link

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here