Comment obtenir (compter) le nombre de mots dans un texte en python ?

Published: 10 novembre 2020

Tags: Python;

DMCA.com Protection Status

Exemple de comment obtenir le nombre de mots dans un texte (manuscript) en python:

Obtenir le nombre de mots dans un texte

Soit le texte suivante (extrait ici de wikipedia)

txt = "Le français est une langue indo-européenne de la famille des langues romanes. Le français s'est formé en France (variété de la « langue d'oïl », qui était la langue de la partie septentrionale du pays). Le français est déclaré langue officielle en France en 15395"

Pour obtenir le nombre de mots on peut par exemple utiliser split():

list_of_words = txt.split()

print(list_of_words)

['Le', 'français', 'est', 'une', 'langue', 'indo-européenne', 'de', 'la', 'famille', 'des', 'langues', 'romanes.', 'Le', 'français', "s'est", 'formé', 'en', 'France', '(variété', 'de', 'la', '«', 'langue', "d'oïl", '»,', 'qui', 'était', 'la', 'langue', 'de', 'la', 'partie', 'septentrionale', 'du', 'pays).', 'Le', 'français', 'est', 'déclaré', 'langue', 'officielle', 'en', 'France', 'en', '15395']

puis len():

print("Number of words in text: ", len(list_of_words))

donne

Number of words in text:  45

Obtenir le nombre de mots dans un texte sans les doublons

1: Supprimer les caractères spéciaux

Pour supprimer les caractères spéciaux on peut utiliser isalnum():

list_of_words = [''.join(e for e in word if e.isalnum()) for word in list_of_words]

print(list_of_words)

donne

['Le', 'français', 'est', 'une', 'langue', 'indoeuropéenne', 'de', 'la', 'famille', 'des', 'langues', 'romanes', 'Le', 'français', 'sest', 'formé', 'en', 'France', 'variété', 'de', 'la', '', 'langue', 'doïl', '', 'qui', 'était', 'la', 'langue', 'de', 'la', 'partie', 'septentrionale', 'du', 'pays', 'Le', 'français', 'est', 'déclaré', 'langue', 'officielle', 'en', 'France', 'en', '15395']

2 - Supprimer les éléments vides ""

list_of_words = [word for word in list_of_words if word]

print(list_of_words)

3 - Pour supprimer les doublons on peut utiliser set() comme ceci:

list_of_words = list(set(list_of_words))

4 - Obtenir le nombre de mots sans les doublons

print("Number of words in text: ", len(list_of_words))

donne

Number of words in text:  27

Références