10
votes

Comment calculer le nombre de fois qu'un mot se produit dans une phrase?

Alors j'ai appris Python depuis quelques mois maintenant et je me demandais comment j'aurais allusion à écrire une fonction qui comptera le nombre de fois qu'un mot se produit dans une phrase. J'apprécierais que quelqu'un puisse me donner une méthode étape par étape pour le faire.


7 Réponses :


10
votes

Réponse rapide: xxx pré>

'Certains string.split () code> scindera la chaîne sur WhitSpace (espaces, onglets et linefeeds) dans une liste de mots choses ish. Alors ['Certains', 'string']. Compte (élément) code> renvoie le nombre de fois élément code> se produit dans la liste. P>

Ça ne " t gérer le retrait de la ponctuation. Vous pouvez le faire en utilisant string.maketrans code> et str.translate code> . P >

# Make collection of chars to keep (don't translate them)
import string
keep = string.lowercase + string.digits + string.whitespace
table = string.maketrans(keep, keep)
delete = ''.join(set(string.printable) - set(keep))

def count_occurrences(word, sentence):
    return sentence.lower().translate(table, delete).split().count(word)


2 commentaires

String.Translate est techniquement dans la section obsolète de la documentation, donc je me méfierais d'utiliser cette fonction comme habitude.


Vous avez raison - j'ai changé le texte pour faire référence à Str.Translate, qui est la façon la chance de le faire.



5
votes

Wilberforce a la réponse rapide, correcte, et je vais donner la réponse longue "Comment arriver à cette conclusion".

Premier, voici quelques outils pour vous aider à démarrer et quelques questions que vous devez poser vous-même. P>

Vous devez lire la section sur Types de séquence , dans les documents Python, car c'est votre meilleur ami de résoudre ce problème. Sérieusement, lisez-le. Une fois que vous avez lu cela, vous devriez avoir des idées. Par exemple, vous pouvez prendre une longue chaîne et le casser en utilisant la fonction Split (). Pour être explicite: p> xxx pré>

prend la chaîne d'entrée et le scindre sur n'importe quel espace blanche et vous donnera: p> xxx pré>

Notez maintenant ici que vous avez la période toujours à la fin de la deuxième «phrase». Ceci est un problème parce que la «phrase» n'est pas la même que «phrase». Si vous allez dépasser votre liste et compter les mots, vous devez vous assurer que les chaînes sont identiques. Vous devrez peut-être trouver et supprimer une certaine ponctuation. P>

une approche navey à cela pourrait être: p> xxx pré>

pour me faire passer une phrase de moins:

"This sentence is a simple sentence"


2 commentaires

Cela répond à ce nombre de mots dans cette phrase? ", Mais pas" Combien de fois ce mot se produit-il dans cette phrase? ". :)


Oh dang. Échec de la lecture. Fixation.



0
votes

Vous pouvez le faire comme ceci: xxx

puis appelant la chaîne: xxx

retournera: Nombre de fois "Word" est: 2


0 commentaires

0
votes

def check_search_wordcount (mySearchstr, mysencence): xxx


2 commentaires

Seule la publication du code sans explication n'est pas très utile pour la personne qui a demandé.


Salut, c'est simple ... Step1) Prenez la longueur totale de la chaîne - "len_mysentence" Step2) Prenez la longueur de la chaîne sans mot de recherche - "len_sentenence_without_finind_word" Step3) Soustraction des deux longueurs - "len_remaining_sentence" Step4) finalement diviser len_remaine_sentence avec la longueur de mot de recherche ........



3
votes

La manière la plus simple: xxx


0 commentaires

0
votes

Je suppose que vous savez simplement sur Python String et pour la boucle.

def count_occurences(s,word):

    count = 0
    for i in range(len(s)): 
        if s[i:i+len(word)] == word:
            count += 1    
    return count

mystring = "This sentence is a simple sentence."
myword = "sentence"
print(count_occurences(mystring,myword))


1 commentaires

C'est inutilement compliqué cependant.



1
votes
text=input("Enter your sentence:")
print("'the' appears", text.count("the"),"times")

simplest way to do it

0 commentaires