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

Undress AI Tool
Ausziehbilder kostenlos

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

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

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

Googles NotebookLM ist ein intelligentes KI-Notiz-Tool, das von Gemini 2.5 betrieben wird, das sich beim Zusammenfassen von Dokumenten auszeichnet. Es hat jedoch weiterhin Einschr?nkungen bei der Verwendung von Tools, wie Quellkappen, Cloud -Abh?ngigkeit und der jüngsten ?Discover“ -Funktion

Hier sind zehn überzeugende Trends, die die AI -Landschaft der Unternehmen neu ver?ndern. Das riskante finanzielle Engagement für LLMSorganisierungen erh?ht ihre Investitionen in LLM erheblich, wobei 72% erwarten, dass ihre Ausgaben in diesem Jahr steigen. Derzeit fast 40% a

Das Investieren boomt, aber Kapital allein reicht nicht aus. Mit zunehmender Bewertungen und Verblassen der Unterscheidungskraft müssen Investoren in AI-fokussierten Risikokonstrumentfonds eine wichtige Entscheidung treffen: Kaufen, Bau oder Partner, um einen Vorteil zu erlangen? Hier erfahren Sie, wie Sie jede Option bewerten - und PR

Offenlegung: Mein Unternehmen, Tirias Research, hat sich für IBM, NVIDIA und andere in diesem Artikel genannte Unternehmen beraten. Wachstumstreiber Die Anstieg der generativen KI -Adoption war dramatischer als selbst die optimistischsten Projektionen, die vorhersagen konnten. Dann a

Diese Tage sind dank AI nummeriert. Suchen Sie den Verkehr für Unternehmen wie die Reisebereich Kayak und das Edtech -Unternehmen Chegg, teilweise, weil 60% der Suchanfragen auf Websites wie Google nicht dazu führen, dass Benutzer laut One Stud auf Links klicken

Die Kluft zwischen weit verbreiteter Akzeptanz und emotionaler Bereitschaft zeigt etwas Wesentliches darüber, wie sich die Menschen mit ihrer wachsenden Auswahl an digitalen Gef?hrten besch?ftigen. Wir betreten eine Phase des Koexistenz

Reden wir darüber. Diese Analyse eines innovativen KI -Durchbruchs ist Teil meiner laufenden Forbes -S?ulenberichterstattung über die neueste in der KI, einschlie?lich der Identifizierung und Erkl?rung verschiedener wirksamer KI -Komplexit?ten (siehe Link hier). Auf dem Weg zu Agi und

Schauen wir uns genauer an, was ich am bedeutendsten fand - und wie Cisco auf seinen aktuellen Bemühungen aufbauen k?nnte, seine Ambitionen weiter zu verwirklichen.
