TEXT -STATISTISCHE ANALYSE VON PYNLPL -Bibliothek
Einführung
Die statistische Textanalyse ist eine der wichtigsten Schritte der Textvorverarbeitung. Es hilft uns, unsere Textdaten auf tiefe, mathematische Weise zu verstehen. Diese Art der Analyse kann uns helfen, versteckte Muster zu verstehen, und das Gewicht spezifischer Wörter in einem Satz und insgesamt hilft beim Aufbau guter Sprachmodelle. Die Pynlpl oder wie wir es Ananasbibliothek nennen, ist eine der besten Python -Bibliotheken für die statistische textbezogene Analyse. Diese Bibliothek ist auch nützlich für andere Aufgaben wie das Reinigen und Analyse von Text und bietet Textvorverarbeitungsfunktionen wie Tokenizer, N-Grammextraktoren und vieles mehr. Zusätzlich kann PynlPL verwendet werden, um einfache Sprachmodelle zu erstellen.
In diesem Blog verstehen Sie, wie Sie eine Textanalyse mit PynlPL durchführen. Wir werden zunächst alle Möglichkeiten verstehen, diese Bibliothek auf unseren Systemen zu installieren. Als nächstes werden wir den Begriff Co-Coccurce-Matrix und seine Implementierung mit der PynlPL-Bibliothek verstehen. Danach lernen wir, wie Sie eine Frequenzliste erstellen, um die am meisten wiederholten Wörter zu identifizieren. Als nächstes werden wir eine Textverteilungsanalyse durchführen, um die Ähnlichkeit zwischen zwei Textdokumenten oder Zeichenfolgen zu messen. Schließlich werden wir die Entfernung des Leveshteins mit dieser Bibliothek verstehen und berechnen. Sie können sich entweder selbst befolgen und sich selbst codieren, oder Sie können einfach auf die Schaltfläche "Kopieren und Bearbeiten" in diesem Link klicken, um alle Programme auszuführen.
Lernziele
- Verstehen Sie, wie Sie diese Bibliothek durch alle verfügbaren Methoden ausführlich installieren.
- Erfahren Sie, wie Sie einen Begriff Co-Auftreten erstellen, um Wortbeziehungen zu analysieren.
- Lernen Sie, gemeinsame Aufgaben wie die Erzeugung von Frequenzlisten und die Berechnung der Levenshtein -Entfernung auszuführen.
- Lernen Sie, fortgeschrittene Aufgaben wie die Durchführung von Textverteilungsanalysen und Messung der Dokumentenähnlichkeit auszuführen.
Dieser Artikel wurde als Teil des Data Science -Blogathons veröffentlicht.
Inhaltsverzeichnis
- Wie installiere ich PynlPL?
- Wie verwende ich PynlPL für die Textanalyse?
- Begriff Co-Auftreten Matrix
- Frequenzliste
- Textverteilungsanalyse
- Levenshtein Distanz
- Messung der Dokumentähnlichkeit
- Häufig gestellte Fragen
Wie installiere ich PynlPL?
Wir können diese Bibliothek auf zwei Arten installieren, zuerst mit PYPI und zweitens mit GitHub.
Via pypi
So installieren Sie es mit PYPI den folgenden Befehl in Ihrem Terminal.
PIP Installieren Sie Pynlpl
Wenn Sie ein Notebook wie Jupyter Notebook, Kaggle Notebook oder Google Colab verwenden, fügen Sie '!' vor dem obigen Befehl.
Über Github
Um diese Bibliothek mit GitHub zu installieren, klonen Sie das offizielle PYNLPL -Repository mit dem folgenden Befehl in Ihr System.
Git Clone https://github.com/proycon/pynlpl.git
Ändern Sie dann das Verzeichnis Ihres Terminals in diesem Ordner mit 'CD' und fügen Sie diesen Befehl unten ein, um die Bibliothek zu installieren.
python3 setup.py install
Wie verwende ich PynlPL für die Textanalyse?
Lassen Sie uns nun untersuchen, wie wir PynlPL für die Textanalyse verwenden können.
Begriff Co-Auftreten Matrix
Der Begriff Co-Occurrence Matrix (TCM) ist eine statistische Methode, um zu ermitteln, wie oft ein Wort mit einem anderen spezifischen Wort in einem Text mitgewirkt hat. Diese Matrix hilft uns, die Beziehungen zwischen Wörtern zu verstehen und kann versteckte Muster aufzeigen, die nützlich sind. Es wird häufig zum Aufbau von Textzusammenfassungen verwendet, da es Beziehungen zwischen Wörtern bietet, die dazu beitragen können, kurze Zusammenfassungen zu erzeugen. Lassen Sie uns nun sehen, wie Sie diese Matrix mit der PynlPL -Bibliothek erstellen.
Wir werden zuerst die Frequenzlistenfunktion aus pynlPl.Statistics importieren, mit der in einem Text ein Wort wiederholt wurde. Wir werden dies in einem späteren Abschnitt genauer untersuchen. Darüber hinaus importieren wir die Standarddict -Methode aus dem Sammlungsmodul. Als nächstes erstellen wir eine Funktion namens create_cooccurrence_matrix, die eine Texteingabe und eine Fenstergröße nimmt und die Matrix zurückgibt. In dieser Funktion teilen wir den Text zunächst in einzelne Wörter auf und erstellen eine Co-Auftreten-Matrix unter Verwendung von StandardDict. Für jedes Wort im Text identifizieren wir seine Kontextwörter in der angegebenen Fenstergröße und aktualisieren die Co-Auftreten-Matrix. Schließlich drucken wir die Matrix und zeigen die Frequenz jedes Terms an.
von pynlpl.statistics Import FrequencyList Aus den Sammlungen importieren Sie Standarddict Def create_cooccurrence_matrix (text, window_size = 2): Wörter = text.split () cooccurrence_matrix = defaultDict (Frequenzliste) Für mich, Wort in Aufzählung (Wörter): start = max (i - window_size, 0) end = min (i window_size 1, len (Wörter)) context = Wörter [Start: i] Wörter [i 1: Ende] Für Context_Word im Kontext: cooccurrence_matrix [Word.lower ()]. count (context_word.lower ()) Return Cooccurce_Matrix text = "Hallo, das ist Analytics Vidhya und Sie machen bisher großartige Erkundung von Datenwissenschaftthemen. Analytics Vidhya ist eine großartige Plattform für das Lernen von Datenwissenschaft und maschinellem Lernen." # Erstellen der Begriffsbegrenzungsmatrix cooccurrence_matrix = create_cooccurrence_matrix (Text) # Drucken des Begriffs Co-Auftreten Matrix print ("Begriff Co-Occurrence Matrix:") Für den Term context_freq_list in cooccurrence_matrix.items (): print (f "{Term}: {dict (context_freq_list)}")
Ausgabe:
Frequenzliste
Eine Frequenzliste enthält die Anzahl, mit der ein bestimmtes Wort in einem Dokument oder einem Absatz wiederholt wurde. Dies ist eine nützliche Funktion, um das Hauptthema und den Kontext des gesamten Dokuments zu verstehen. Wir verwenden normalerweise Frequenzlisten in Feldern wie Linguistik, Informationsabruf und Textabbau. Suchmaschinen verwenden beispielsweise Frequenzlisten, um Webseiten zu bewerten. Wir können dies auch als Marketingstrategie verwenden, um Produktbewertungen zu analysieren und die öffentliche Hauptstimmung des Produkts zu verstehen.
Lassen Sie uns nun sehen, wie Sie diese Frequenzliste mit der PynlPL -Bibliothek erstellen. Wir werden zuerst die Frequenzlistenfunktion aus pynlpl.statistics importieren. Dann nehmen wir einen Beispieltext in eine Variable und teilen den gesamten Text in einzelne Wörter auf. Wir werden diese "Wörter" -Variable dann in die Frequenzlistenfunktion übergeben. Schließlich werden wir die Elemente in der Frequenzliste durchlaufen und jedes Wort und seine entsprechende Frequenz drucken.
von pynlpl.statistics Import FrequencyList text = "Hallo, das ist Analytics Vidhya und Sie machen bisher großartige Erkundung von Datenwissenschaftthemen. Analytics Vidhya ist eine großartige Plattform für das Lernen von Datenwissenschaft und maschinellem Lernen." Wörter = text.lower (). split ()) Freq_List = Frequenzliste (Wörter) Für Word, Freq in freq_list.items (): print (f "{word}: {freq}"))
Ausgabe:
Textverteilungsanalyse
In der Textverteilungsanalyse berechnen wir die Häufigkeits- und Wahrscheinlichkeitsverteilung von Wörtern in einem Satz, um zu verstehen, welche Wörter den Kontext des Satzes ausmachen. Durch die Berechnung dieser Verteilung von Wortfrequenzen können wir die häufigsten Wörter und ihre statistischen Eigenschaften wie Entropie, Verwirrung, Modus und maximale Entropie identifizieren. Lassen Sie uns diese Eigenschaften einzeln verstehen:
- Entropie : Entropie ist das Maß für die Zufälligkeit in der Verteilung. In Bezug auf Textdaten bedeutet eine höhere Entropie, dass der Text einen weiten Vokabularbereich aufweist und die Wörter weniger wiederholt werden.
- Verwirrung : Verwirrung ist das Maß dafür, wie gut das Sprachmodell auf Stichprobendaten vorhersagt. Wenn die Verwirrung niedriger ist, folgt der Text einem vorhersehbaren Muster.
- Modus : Wie wir alle diesen Begriff seit ihrer Kindheit gelernt haben, erzählt er das wiederholte Wort im Text.
- Maximale Entropie : Diese Eigenschaft zeigt uns die maximale Entropie, die ein Text haben kann. Das heißt, es liefert einen Bezugspunkt, um die tatsächliche Entropie der Verteilung zu vergleichen.
Wir können auch den Informationsinhalt eines bestimmten Wortes berechnen, was bedeutet, dass wir die Menge an Informationen berechnen können, die ein Wort bereitstellt.
Implementieren Sie mit PynlPL
Lassen Sie uns nun sehen, wie Sie alle diese mit PynlPL implementieren.
Wir werden die Funktionen für Verteilungs- und Frequenzlisten aus dem Modul von PynlPl.Statistics und dem Mathematikmodul importieren. Als nächstes erstellen wir einen Beispieltext und zählen die Häufigkeit jedes Wortes in diesem Text. Dazu folgen wir dieselben Schritte wie oben. Anschließend erstellen wir ein Objekt der Verteilungsfunktion, indem wir die Frequenzliste übergeben. Anschließend werden die Verteilung jedes Wortes angezeigt, indem wir die Elemente der Verteilungsvariablen durchschleifen. Um die Entropie zu berechnen, nennen wir die Verteilung.entropy () -Funktion.
Um die Verwirrung zu berechnen, werden wir Distribution.perplexität () nennen. Für den Modus rufen wir Distribution.mode () auf. Um die maximale Entropie zu berechnen, rufen wir die Verteilung auf. Maxentropy (). Um den Informationsinhalt eines bestimmten Wortes zu erhalten, werden wir die Verteilung.Information (Word) aufrufen. Im folgenden Beispiel werden wir das Moduswort als Parameter an diese Funktion übergeben.
Mathematik importieren Aus pynlpl.statistics Importverteilung, Frequenzliste text = "Hallo, das ist Analytics Vidhya und Sie machen bisher großartige Erkundung von Datenwissenschaftthemen. Analytics Vidhya ist eine großartige Plattform für das Lernen von Datenwissenschaft und maschinellem Lernen." # Wortfrequenzen zählen Wörter = text.lower (). split ()) Freq_List = Frequenzliste (Wörter) Word_Counts = dict (freq_list.items ()) # Erstellen eines Verteilungsobjekts aus den Wortfrequenzen Verteilung = Verteilung (WORD_COUNTS) # Anzeige der Verteilung print ("Verteilung:") Für Wort, Prob in Distribution.Items (): print (f "{word}: {prob: .4f}") # Verschiedene Statistiken print ("\ nstatistics:") print (f "Entropie: {Distribution.entropy () :. 4f}") print (f "Verwirrung: {Distribution.Perplexity (): 4f}") print (f "modus: {distribution.mode ()}")) print (f "Max Entropie: {Distribution.maxentropy (): 4f}") # Informationsinhalt des Wortes "Modus" Word = distribution.mode () Information_Content = Distribution.information (Wort) print (f "Informationsinhalt von '{Word}': {Information_Content: .4f}")
Ausgabe:
Levenshtein Distanz
Levenshtein Distanz ist das Maß für den Unterschied zwischen zwei Wörtern. Es berechnet berechnet, wie viele Einzelcharakterveränderungen erforderlich sind, damit zwei Wörter gleich werden. Es berechnet basierend auf dem Einfügen, Löschen oder Substitution eines Charakters in einem Wort. Diese Distanzmetrik wird normalerweise zur Überprüfung von Schreibweisen, DNA -Sequenzanalysen und Verarbeitungsaufgaben für natürliche Sprache verwendet, wie z. B. die Ähnlichkeit von Text, die wir im nächsten Abschnitt implementieren werden, und kann zum Aufbau von Plagiatendetektoren verwendet werden. Durch die Berechnung von Levenshteins Entfernung können wir die Beziehung zwischen zwei Wörtern verstehen, wir können feststellen, ob zwei Wörter ähnlich sind oder nicht. Wenn die Entfernung des Levenshtein sehr weniger ist, können diese Wörter die gleiche Bedeutung oder den gleichen Kontext haben, und wenn sie sehr hoch ist, bedeutet dies, dass sie völlig unterschiedliche Wörter sind.
Um diesen Abstand zu berechnen, importieren wir zuerst die Levenshtein -Funktion aus dem Modul pynlPl.Statistics. Wir werden dann zwei Wörter "Analytics" und "Analyse" definieren. Als nächstes werden wir diese Wörter in die Levenshtein -Funktion übergeben, die den Entfernungswert zurückgibt. Wie Sie in der Ausgabe sehen können, ist der Levenshtein-Abstand zwischen diesen beiden Wörtern 2, was bedeutet, dass nur zwei Einzelcharakter-Änderungen erforderlich sind, um 'Analytics' in 'Analyse' zu konvertieren. Die erste Bearbeitung ersetzt das Charakter ' T ' durch ' s ' in 'Analytics', und die zweite Bearbeitung löscht das Charakter ' C ' bei Index 8 in 'Analytics'.
von pynlpl.statistics import Levenshtein Word1 = "Analytics" Word2 = "Analyse" Entfernung = Levenshtein (Word1, Word2) print (f "levenshtein distanz zwischen '{word1}' und '{word2}': {distanz}")
Ausgabe:
Messung der Dokumentähnlichkeit
Das Messen, wie ähnliche zwei Dokumente oder Sätze in vielen Anwendungen nützlich sein können. Es ermöglicht uns zu verstehen, wie eng die beiden Dokumente verwandt sind. Diese Technik wird in vielen Anwendungen wie Plagiatenprüfern, Code -Differenzprüfern und mehr verwendet. Durch die Analyse der ähnlichen Dokumente können wir die doppelte Identifizierung identifizieren. Dies kann auch in Empfehlungssystemen verwendet werden, bei denen der Benutzer A dem Benutzer B angezeigt werden kann, der dieselbe Abfrage eingegeben hat.
Um dies zu implementieren, werden wir die Cosinus -Ähnlichkeitsmetrik verwenden. Zunächst werden wir zwei Funktionen importieren: Frequenzliste aus der PYNLPL -Bibliothek und SQRT aus dem Mathematikmodul. Jetzt werden wir zwei Variablen zwei Saiten hinzufügen, anstelle von gerechten Zeichenfolgen können wir auch zwei Textdokumente öffnen. Als nächstes erstellen wir Frequenzlisten dieser Zeichenfolgen, indem wir sie an die zuvor importierte Frequenzlistenfunktion weitergeben. Wir werden dann eine Funktion namens Coine_SIMilarity schreiben, in der wir diese beiden Frequenzlisten als Eingaben übergeben werden. In dieser Funktion erstellen wir zuerst Vektoren aus den Frequenzlisten und berechnen dann den Cosinus des Winkels zwischen diesen Vektoren, was ein Maß für ihre Ähnlichkeit liefert. Schließlich werden wir die Funktion aufrufen und das Ergebnis drucken.
von pynlpl.statistics Import FrequencyList vom Mathematikimport SQRT doc1 = "Analytics Vidhya bietet wertvolle Erkenntnisse und Tutorials zu Datenwissenschaft und maschinellem Lernen." doc2 = "Wenn Sie Tutorials für Datenwissenschaft und maschinelles Lernen möchten, lesen Sie Analytics Vidhya." # Frequenzlisten -Objekte für beide Dokumente erstellen Freq_List1 = Frequenzliste (doc1.lower (). Split ()) Freq_List2 = Frequenzliste (doc2.lower (). Split ()) Def Coine_similarity (Freq_List1, Freq_List2): vec1 = {word: freq_list1 [word] für word, _ in freq_list1} vec2 = {word: freq_list2 [word] für word, _ in freq_list2} intersection = set (vec1.keys ()) & set (vec2.keys ()) Zumerator = sum1 = sum (vec1 [wort] ** 2 für wort in vec1.keys ()) sum2 = sum (vec2 [wort] ** 2 für wort in vec2.keys ()) Nenner = SQRT (sum1) * sqrt (sum2) Wenn nicht Nenner: Return 0,0 Return Float (Zähler) / Nenner # Calculatinng Cosinus Ähnlichkeit Ähnlichkeit = Cosinus_similarity (Freq_List1, Freq_List2) print (f "Cosinus Ähnlichkeit: {Ähnlichkeit: .4f}")
Ausgabe:
Abschluss
PynlPL ist eine leistungsstarke Bibliothek, mit der wir textstatistische Analysen durchführen können. Nicht nur Textanalyse, wir können diese Bibliothek auch für einige Textvorverarbeitungstechniken wie Tokenisierung, Stamm, N-Grammextraktion und sogar einfache Sprachmodelle verwenden. In diesem Blog haben wir zunächst alle Möglichkeiten zur Installation dieser Bibliothek verstanden und diese Bibliothek verwendet, um verschiedene Aufgaben auszuführen, z. Jede dieser Techniken kann verwendet werden, um wertvolle Erkenntnisse aus unseren Textdaten zu entfernen und sie zu einer wertvollen Bibliothek zu machen. Wenn Sie das nächste Mal eine Textanalyse durchführen, sollten Sie die PYNLPL -Bibliothek (Ananas) ausprobieren.
Key Takeaways
- Die PynlPL -Bibliothek (Ananas) ist eine der besten Bibliotheken für die statistische Analyse von Text.
- Der Begriff Co-Occurenz-Matrix hilft uns, die Beziehung zwischen Wörtern zu verstehen und könnte beim Aufbau von Zusammenfassungen nützlich sein.
- Frequenzlisten sind nützlich, um das Hauptthema des Textes oder des Dokuments zu verstehen.
- Die Textverteilungsanalyse und die Levenshtein -Distanz können uns helfen, die Textzeitgleichheit zu verstehen.
- Wir können auch die PynlPL -Bibliothek zur Vorbereitung von Text und nicht nur für die statistische textliche Analyse verwenden.
Häufig gestellte Fragen
Q1. Was ist pynlpl?A. Pynlpl, auch als Ananas bekannt, ist eine Python-Bibliothek, die für die statistische Analyse von Text und die Vorverarbeitung von Text verwendet wird.
Q2. Was ist der Vorteil der Messung der Ähnlichkeit von Dokumenten?A. Diese Technik ermöglicht es uns zu messen, wie ähnliche zwei Dokumente oder Texte in Plagiatenprüfern, Code -Differenzprüfern und mehr verwendet werden können.
Q3. Wofür wird der Begriff Co-Occurrence-Matrix verwendet?A. Der Begriff Co-Auftreten-Matrix kann verwendet werden, um zu ermitteln, wie oft zwei Wörter in einem Dokument mitgewiesen werden.
Q4. Wie ist Levenshtein Distanz nützlich?A. Wir können Levenshtein -Distanz verwenden, um den Unterschied zwischen zwei Wörtern zu finden, die beim Aufbau von Zauberprüfern nützlich sein können.
Die in diesem Artikel gezeigten Medien sind nicht im Besitz von Analytics Vidhya und werden nach Ermessen des Autors verwendet.
Das obige ist der detaillierte Inhalt vonTEXT -STATISTISCHE ANALYSE VON PYNLPL -Bibliothek. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Der Artikel überprüft Top -KI -Kunstgeneratoren, diskutiert ihre Funktionen, Eignung für kreative Projekte und Wert. Es zeigt MidJourney als den besten Wert für Fachkräfte und empfiehlt Dall-E 2 für hochwertige, anpassbare Kunst.

Metas Lama 3.2: Ein Sprung nach vorne in der multimodalen und mobilen KI Meta hat kürzlich Lama 3.2 vorgestellt, ein bedeutender Fortschritt in der KI mit leistungsstarken Sichtfunktionen und leichten Textmodellen, die für mobile Geräte optimiert sind. Aufbau auf dem Erfolg o

Der Artikel vergleicht Top -KI -Chatbots wie Chatgpt, Gemini und Claude und konzentriert sich auf ihre einzigartigen Funktionen, Anpassungsoptionen und Leistung in der Verarbeitung und Zuverlässigkeit natürlicher Sprache.

In dem Artikel werden Top -KI -Schreibassistenten wie Grammarly, Jasper, Copy.ai, Writesonic und RYTR erläutert und sich auf ihre einzigartigen Funktionen für die Erstellung von Inhalten konzentrieren. Es wird argumentiert, dass Jasper in der SEO -Optimierung auszeichnet, während KI -Tools dazu beitragen, den Ton zu erhalten

Das jüngste Memo von Shopify -CEO Tobi Lütke erklärt kühn für jeden Mitarbeiter eine grundlegende Erwartung und kennzeichnet eine bedeutende kulturelle Veränderung innerhalb des Unternehmens. Dies ist kein flüchtiger Trend; Es ist ein neues operatives Paradigma, das in P integriert ist

Hey da, codieren Ninja! Welche Codierungsaufgaben haben Sie für den Tag geplant? Bevor Sie weiter in diesen Blog eintauchen, möchte ich, dass Sie über all Ihre Coding-Leiden nachdenken-die Auflistung auflisten diese auf. Erledigt? - Lassen Sie ’

Die KI -Landschaft dieser Woche: Ein Wirbelsturm von Fortschritten, ethischen Überlegungen und regulatorischen Debatten. Hauptakteure wie OpenAI, Google, Meta und Microsoft haben einen Strom von Updates veröffentlicht, von bahnbrechenden neuen Modellen bis hin zu entscheidenden Verschiebungen in LE

Der Artikel überprüft Top -KI -Sprachgeneratoren wie Google Cloud, Amazon Polly, Microsoft Azure, IBM Watson und Descript, wobei sie sich auf ihre Funktionen, die Sprachqualität und die Eignung für verschiedene Anforderungen konzentrieren.
