


Analyse statistique textuelle à l'aide de la bibliothèque Pynlpl
Apr 20, 2025 am 09:29 AMIntroduction
L'analyse statistique du texte est l'une des étapes importantes du prétraitement du texte. Il nous aide à comprendre nos données de texte de manière profonde et mathématique. Ce type d'analyse peut nous aider à comprendre les modèles cachés et le poids de mots spécifiques dans une phrase, et dans l'ensemble, aide à construire de bons modèles de langage. Le Pynlpl ou comme nous l'appelons la bibliothèque d'ananas, est l'une des meilleures bibliothèques Python pour l'analyse statistique textuelle. Cette bibliothèque est également utile pour d'autres taches telles que le nettoyage et l'analyse du texte, et il fournit des fonctions de prétraitement de texte comme les tokeniseurs, les extracteurs N-grammes, etc. De plus, PynLPL peut être utilisé pour créer des modèles de langage simples.
Dans ce blog, vous comprendrez comment effectuer une analyse de texte à l'aide de Pynlpl. Nous comprendrons d'abord toutes les fa?ons d'installer cette bibliothèque sur nos systèmes. Ensuite, nous comprendrons le terme matrice de co-occurrence et son implémentation à l'aide de la bibliothèque PynLPL. Après cela, nous apprendrons à créer une liste de fréquences pour identifier les mots les plus répétés. Ensuite, nous effectuerons une analyse de la distribution de texte pour mesurer la similitude entre deux documents de texte ou cha?nes. Enfin, nous comprendrons et calculerons la distance de Leveshtein à l'aide de cette bibliothèque. Vous pouvez soit suivre et coder par vous-même, soit vous pouvez simplement cliquer sur le bouton ?Copier et modifier? dans ce lien pour exécuter tous les programmes.
Objectifs d'apprentissage
- Comprendre comment installer cette bibliothèque en détail via toutes les méthodes disponibles.
- Apprenez à créer une matrice de cooccurrence de terme pour analyser les relations de mots.
- Apprenez à effectuer des taches communes comme la génération de listes de fréquences et le calcul de la distance de Levenshtein.
- Apprenez à effectuer des taches avancées telles que la réalisation de l'analyse de la distribution de texte et la mesure de la similitude des documents.
Cet article a été publié dans le cadre du Blogathon de la science des données.
Table des matières
- Comment installer Pynlpl?
- Comment utiliser PynLPL pour l'analyse de texte?
- Matrice de cooccurrence à terme
- Liste de fréquences
- Analyse de la distribution de texte
- Distance de Levenshtein
- Mesurer la similitude des documents
- Questions fréquemment posées
Comment installer Pynlpl?
Nous pouvons installer cette bibliothèque de deux manières, en utilisant d'abord PYPI et seconde à l'aide de GitHub.
Via PYPI
Pour l'installer en utilisant PYPI Coller la commande ci-dessous dans votre terminal.
pip install pynlpl
Si vous utilisez un ordinateur portable comme Jupyter Notebook, Kaggle Notebook ou Google Colab, ajoutez "!" avant la commande ci-dessus.
Via github
Pour installer cette bibliothèque à l'aide de GitHub, clonez le référentiel Pynlpl officiel dans votre système à l'aide de la commande ci-dessous.
git clone https://github.com/proycon/pynlpl.git
Ensuite, modifiez le répertoire de votre terminal en ce dossier à l'aide de ?CD? puis collez cette commande ci-dessous pour installer la bibliothèque.
Python3 setup.py install
Comment utiliser PynLPL pour l'analyse de texte?
Explorons maintenant comment nous pouvons utiliser PynLPL pour l'analyse de texte.
Matrice de cooccurrence à terme
La matrice de co-occurrence à terme (TCM) est une méthode statistique pour identifier la fréquence à laquelle un mot se co-co-occupe avec un autre mot spécifique dans un texte. Cette matrice nous aide à comprendre les relations entre les mots et peut révéler des modèles cachés qui sont utiles. Il est couramment utilisé pour créer des résumés de texte, car il fournit des relations entre des mots qui peuvent aider à générer des résumés concises. Maintenant, voyons comment construire cette matrice à l'aide de la bibliothèque Pynlpl.
Nous importerons d'abord la fonction FrequencyList de Pynlpl.statistics, qui est utilisée pour compter combien de fois un mot a été répété dans un texte. Nous l'explorerons plus en détail dans une section ultérieure. De plus, nous importerons la méthode defaultDict à partir du module Collections. Ensuite, nous créerons une fonction nommée create_cooccurrence_matrix, qui prend une entrée de texte et une taille de fenêtre, et renvoie la matrice. Dans cette fonction, nous allons d'abord diviser le texte en mots individuels et créer une matrice de cooccurrence en utilisant defaultDict. Pour chaque mot du texte, nous identifierons ses mots de contexte dans la taille de la fenêtre spécifiée et mettrons à jour la matrice de cooccurrence. Enfin, nous allons imprimer la matrice et afficher la fréquence de chaque terme.
de pynlpl.statistics d'importation d'importation à partir des collections d'importation par défaut def create_cooccurrence_matrix (texte, window_size = 2): mots = text.split () COOCCURENCE_MATRIX = DefaultDict (FrequencyList) pour moi, mot en énumération (mots): start = max (i - window_size, 0) end = min (i window_size 1, len (mots)) context = mots [start: i] mots [i 1: fin] pour context_word en contexte: cooccurrence_matrix [word.lower ()]. ??count (context_word.lower ()) retourner cooccurrence_matrix text = "Bonjour c'est l'analyse vidhya et vous vous débrouillez très bien jusqu'à présent pour explorer les sujets de science des données. Analytics Vidhya est une excellente plate-forme pour l'apprentissage des sciences des données et de l'apprentissage automatique." # Création de la matrice de cooccurrence à terme cooccurrence_matrix = create_cooccurrence_matrix (texte) # Impression du terme matrice de cooccurrence Print ("Matrice de cooccurrence à terme:") Pour le terme, context_freq_list dans cooccurrence_matrix.items (): print (f "{term}: {dict (context_freq_list)}")
Sortir:
Liste de fréquences
Une liste de fréquences contiendra le nombre de fois qu'un mot spécifique a été répété dans un document ou un paragraphe. Il s'agit d'une fonction utile pour comprendre le thème et le contexte principal de l'ensemble du document. Nous utilisons généralement des listes de fréquences dans des champs tels que la linguistique, la recherche d'informations et l'extraction de texte. Par exemple, les moteurs de recherche utilisent des listes de fréquences pour classer les pages Web. Nous pouvons également l'utiliser comme une stratégie marketing pour analyser les revues de produits et comprendre le principal sentiment public du produit.
Maintenant, voyons comment créer cette liste de fréquences à l'aide de la bibliothèque Pynlpl. Nous importerons d'abord la fonction FrequencyList de Pynlpl.statistics. Ensuite, nous prendrons un exemple de texte dans une variable et diviserons le texte entier en mots individuels. Nous passerons ensuite cette variable ?mots? dans la fonction FrequencyList. Enfin, nous allons itérer les éléments de la liste de fréquences et imprimer chaque mot et sa fréquence correspondante.
de pynlpl.statistics d'importation d'importation text = "Bonjour c'est l'analyse vidhya et vous vous débrouillez très bien jusqu'à présent pour explorer les sujets de science des données. Analytics Vidhya est une excellente plate-forme pour l'apprentissage des sciences des données et de l'apprentissage automatique." words = text.lower (). Split () freq_list = fréquencelist (mots) Pour Word, Freq dans Freq_List.Items (): print (f "{word}: {freq}")
Sortir:
Analyse de la distribution de texte
Dans l'analyse de la distribution de texte, nous calculons la distribution de fréquence et de probabilité des mots dans une phrase, pour comprendre quels mots constituent le contexte de la phrase. En calculant cette distribution des fréquences de mots, nous pouvons identifier les mots les plus courants et leurs propriétés statistiques, comme l'entropie, la perplexité, le mode et l'entropie maximale. Comprenons ces propriétés une par une:
- Entropie : L'entropie est la mesure de l'aléatoire dans la distribution. En termes de données textuelles, une entropie plus élevée signifie que le texte a un large éventail de vocabulaire et que les mots sont moins répétés.
- Perplexité : la perplexité est la mesure de la fa?on dont le modèle de langue prédit sur les données de l'échantillon. Si la perplexité est inférieure, le texte suit un modèle prévisible.
- MODE : Comme nous avons tous appris ce terme depuis l'enfance, il nous dit le mot le plus répété du texte.
- Entropie maximale : cette propriété nous indique l'entropie maximale qu'un texte peut avoir. Ce qui signifie qu'il fournit un point de référence pour comparer l'entropie réelle de la distribution.
Nous pouvons également calculer le contenu d'information d'un mot spécifique, ce qui signifie que nous pouvons calculer la quantité d'informations fournies par un mot.
Mettre en ?uvre à l'aide de pynlpl
Voyons maintenant comment implémenter tous ces éléments à l'aide de Pynlpl.
Nous importerons les fonctions de distribution et de FrequencyList à partir du module Pynlpl.statistics et du module mathématique. Ensuite, nous créerons un exemple de texte et compterons la fréquence de chaque mot dans ce texte. Pour ce faire, nous suivrons les mêmes étapes que ci-dessus. Ensuite, nous créerons un objet de la fonction de distribution en passant la liste de fréquences. Nous afficherons ensuite la distribution de chaque mot en faisant du bouclage à travers les éléments de la variable de distribution. Pour calculer l'entropie, nous appellerons la fonction Distribution.Entropy ().
Pour calculer la perplexité, nous appellerons la distribution.perplexity (). Pour le mode, nous appellerons Distribution.Mode (). Pour calculer l'entropie maximale, nous appellerons la distribution.maxentropy (). Enfin, pour obtenir le contenu d'informations d'un mot spécifique, nous appellerons Distribution.Information (Word). Dans l'exemple ci-dessous, nous passerons le mot de mode comme paramètre à cette fonction.
mathématiques d'importation De la distribution d'importation Pynlpl.statistics, Frequencylist text = "Bonjour c'est l'analyse vidhya et vous vous débrouillez très bien jusqu'à présent pour explorer les sujets de science des données. Analytics Vidhya est une excellente plate-forme pour l'apprentissage des sciences des données et de l'apprentissage automatique." # Compter les fréquences de mots words = text.lower (). Split () freq_list = fréquencelist (mots) word_counts = dict (freq_list.items ()) # Création d'un objet de distribution à partir des fréquences de mots distribution = distribution (word_counts) # Affichage de la distribution Imprimer ("Distribution:") pour mot, prob in Distribution.items (): print (f "{word}: {prob: .4f}") # Diverses statistiques imprimer ("\ nstatistics:") print (f "Entropy: {distribution.entropy () :. 4f}") print (f "Perplexity: {distribution.perplexity () :. 4f}") print (f "mode: {distribution.mode ()}") print (f "Entropie max: {distribution.maxentropy () :. 4f}") # Contenu de l'information du mot ?mode? word = distribution.mode () information_content = distribution.information (word) print (f "Contenu d'information de '{word}': {information_content: .4f}")
Sortir:
Distance de Levenshtein
La distance de Levenshtein est la mesure de la différence entre deux mots. Il calcule le nombre de changements de caractéristiques à un seul caractère pour que deux mots deviennent les mêmes. Il calcule en fonction de l'insertion, de la suppression ou de la substitution d'un caractère en un mot. Cette métrique de distance est généralement utilisée pour vérifier les orthographes, l'analyse de la séquence d'ADN et les taches de traitement du langage naturel telles que la similitude du texte que nous implémenterons dans la section suivante, et il peut être utilisé pour construire des détecteurs de plagiat. En calculant la distance de Levenshtein, nous pouvons comprendre la relation entre deux mots, nous pouvons dire si deux mots sont similaires ou non. Si la distance de Levenshtein est très inférieure, ces mots pourraient avoir le même sens ou le même contexte, et s'il est très élevé, cela signifie que ce sont des mots complètement différents.
Pour calculer cette distance, nous importerons d'abord la fonction Levenshtein du module Pynlpl.statistics. Nous définirons ensuite deux mots, ?analyse? et ?analyse?. Ensuite, nous passerons ces mots dans la fonction Levenshtein, qui renverra la valeur de distance. Comme vous pouvez le voir dans la sortie, la distance de Levenshtein entre ces deux mots est 2, ce qui signifie qu'il ne faut que deux modifications à caractre à un seul caractère pour convertir ?Analytics? en ?analyse?. Le premier montage consiste à substituer le personnage ? t ? par ? s ? dans ?analytique?, et le deuxième montage consiste à supprimer le personnage ? C ? à l'index 8 dans ?Analytics?.
de pynlpl.statistics import Levenshtein word1 = "analytique" word2 = "analyse" Distance = Levenshtein (Word1, Word2) print (f "Levenshtein Distance entre '{word1}' et '{word2}': {distance}")
Sortir:
Mesurer la similitude des documents
Mesurer la fa?on dont deux documents ou phrases similaires peuvent être utiles dans de nombreuses applications. Il nous permet de comprendre à quel point les deux documents sont étroitement liés. Cette technique est utilisée dans de nombreuses applications telles que les vérificateurs de plagiat, les vérificateurs de différence de code, etc. En analysant à quel point les deux documents sont similaires, nous pouvons identifier celui en double. Cela peut également être utilisé dans les systèmes de recommandation, où les résultats de recherche indiqués à l'utilisateur A peuvent être affichés à l'utilisateur B qui a tapé la même requête.
Maintenant, pour implémenter cela, nous utiliserons la métrique de similitude du cosinus. Tout d'abord, nous importerons deux fonctions: FrequencyList à partir de la bibliothèque PynLPL et SQRT du module mathématique. Nous allons maintenant ajouter deux cha?nes à deux variables, à la place des cha?nes Just, nous pouvons également ouvrir deux documents texte. Ensuite, nous créerons des listes de fréquences de ces cha?nes en les transmettant à la fonction FrequencyList que nous avons importée plus t?t. Nous rédigerons ensuite une fonction nommée Cosine_similarity, dans laquelle nous passerons ces deux listes de fréquences comme entrées. Dans cette fonction, nous allons d'abord créer des vecteurs à partir des listes de fréquences, puis calculer le cosinus de l'angle entre ces vecteurs, fournissant une mesure de leur similitude. Enfin, nous appellerons la fonction et imprimerons le résultat.
de pynlpl.statistics d'importation d'importation à partir de mathématiques SQRT DOC1 = "Analytics Vidhya fournit des informations et des tutoriels précieux sur la science des données et l'apprentissage automatique." doc2 = "Si vous voulez des tutoriels sur la science des données et l'apprentissage automatique, consultez l'analyse vidhya." # Création d'objets FrequencyList pour les deux documents freq_list1 = fréquencelist (doc1.lower (). Split ()) freq_list2 = fréquencelist (doc2.lower (). Split ()) def cosine_similarity (freq_list1, freq_list2): vec1 = {word: freq_list1 [word] pour word, _ in freq_list1} vec2 = {word: freq_list2 [word] pour word, _ in freq_list2} intersection = set (vec1.keys ()) & set (Vec2.Keys ()) Numerator = sum (vec1 [word] * vec2 [word] pour le mot en intersection) sum1 = sum (vec1 [word] ** 2 pour le mot dans vec1.keys ()) sum2 = sum (vec2 [word] ** 2 pour le mot dans Vec2.Keys ()) Denominator = SQRT (SUM1) * SQRT (SUM2) Si ce n'est pas un dénominateur: retour 0,0 retour float (numérateur) / dénominateur # Calculatinng Cosine similitude similitude = cosine_similarity (freq_list1, freq_list2) print (f "Cosine similitude: {similitude: .4f}")
Sortir:
Conclusion
PynLPL est une bibliothèque puissante en utilisant lesquelles nous pouvons effectuer une analyse statistique textuelle. Non seulement l'analyse de texte, nous pouvons également utiliser cette bibliothèque pour certaines techniques de prétraitement de texte comme la tokenisation, la tige, l'extraction du gramme N et même la création de modèles de langage simples. Dans ce blog, nous avons d'abord compris toutes les fa?ons d'installer cette bibliothèque, nous avons ensuite utilisé cette bibliothèque pour effectuer diverses taches telles que la mise en ?uvre du terme matrice de cooccurrence, la création de listes de fréquences pour identifier les mots courants, effectuer une analyse de distribution de texte et comprendre comment calculer la distance de levenshtein et calculé la similitude des documents. Chacune de ces techniques peut être utilisée pour extraire des informations précieuses de nos données textuelles, ce qui en fait une bibliothèque précieuse. La prochaine fois que vous effectuez une analyse de texte, envisagez d'essayer la bibliothèque Pynlpl (Pineapple).
Principaux à retenir
- La bibliothèque Pynlpl (Pineapple) est l'une des meilleures bibliothèques pour l'analyse statistique textuelle.
- Le terme matrice de co-occurrence nous aide à comprendre la relation entre les mots et pourrait être utile pour construire des résumés.
- Les listes de fréquences sont utiles pour comprendre le thème principal du texte ou du document.
- L'analyse de la distribution de texte et la distance de Levenshtein peuvent nous aider à comprendre la similitude du texte.
- Nous pouvons également utiliser la bibliothèque PynLPL pour le prétraitement du texte et pas seulement pour l'analyse statistique textuelle.
Questions fréquemment posées
Q1. Qu'est-ce que Pynlpl?A. Pynlpl, également connu sous le nom d'ananas, est une bibliothèque Python utilisée pour l'analyse statistique textuelle et le prétraitement du texte.
Q2. Quel est l'avantage de mesurer la similitude des documents?A. Cette technique nous permet de mesurer à quel point deux documents ou textes sont similaires et pourraient être utilisés dans les vérificateurs de plagiat, les vérificateurs de différence de code, etc.
Q3. à quoi sert le terme matrice de cooccurrence?A. Le terme matrice de cooccurrence peut être utilisé pour identifier la fréquence à laquelle deux mots se cooptent dans un document.
Q4. Comment la distance de Levenshtein est-elle utile?R. Nous pouvons utiliser la distance de Levenshtein pour trouver la différence entre deux mots, qui peuvent être utiles pour construire des vérificateurs de orthographe.
Les médias présentés dans cet article ne sont pas détenus par l'analytique vidhya et sont utilisés à la discrétion de l'auteur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Notebooklm de Google est un outil de prise de notes SMART IA propulsé par Gemini 2.5, qui excelle à résumer les documents. Cependant, il a toujours des limites dans l'utilisation des outils, comme les bouchons de source, la dépendance au nuage et la fonction récentes ?Discover?

Voici dix tendances convaincantes qui remodèlent le paysage de l'IA de l'entreprise. L'engagement financier de la lancement envers les organisations LLMS augmente considérablement leurs investissements dans les LLM, 72% s'attendant à ce que leurs dépenses augmentent cette année. Actuellement, près de 40% A

L'investissement est en plein essor, mais le capital seul ne suffit pas. Avec la montée et la décoloration des évaluations, les investisseurs dans les fonds de capital-risque axés sur l'IA doivent prendre une décision clé: acheter, construire ou partenaire pour gagner un avantage? Voici comment évaluer chaque option et PR

Divulgation: mon entreprise, Tirias Research, a consulté IBM, NVIDIA et d'autres sociétés mentionnées dans cet article.Les moteurs de croissance La poussée de l'adoption générative de l'IA était plus dramatique que même les projections les plus optimistes ne pourraient prévoir. Ensuite, un

Ces jours sont comptés, grace à l'IA. Le trafic de recherche pour des entreprises comme le site de voyage Kayak et Edtech Company Chegg en baisse, en partie parce que 60% des recherches sur des sites comme Google ne font pas que les utilisateurs cliquent sur des liens, selon un étalon

L'écart entre l'adoption généralisée et la préparation émotionnelle révèle quelque chose d'essentiel sur la fa?on dont les humains s'engagent avec leur gamme croissante de compagnons numériques. Nous entrons dans une phase de coexistence où les algorithmes se tissent dans notre quotidien en direct

Parlons-en. Cette analyse d'une percée innovante de l'IA fait partie de ma couverture de colonne Forbes en cours sur les dernières personnes en IA, notamment en identifiant et en expliquant diverses complexités d'IA percutantes (voir le lien ici). Se dirigeant vers Agi et

Examinons de plus près ce que j'ai trouvé le plus important - et comment Cisco pourrait s'appuyer sur ses efforts actuels pour réaliser davantage ses ambitions. (Remarque: Cisco est un client consultatif de mon entreprise, Moor Insights & Strategy.)
