2016-11-30 4 views
0

J'ai écrit un programme qui lit à partir du fichier et faire un peu de calcul. J'ai une dernière fonction à ajouter. Il doit compter dans combien de mots mot spécifique se produit. Voici le programme lui-même:Comment compter l'occurrence de mot dans les phrases dans le texte

# -*- coding: utf-8 -*- 

from sys import argv # importing argv module so we can specify file to read 

script, filename = argv # run program like this: python litvin.py filename.txt 

txt = open(filename) # open file 

text = txt.read() # get text from file 


def count_letters(file): 
    """ function that counts symbols in text without spaces """ 
    return len(file) - file.count(' ') 
print "\nКількість слів в тексті: %d" % count_letters(text) 

def count_sentences(file): 
    """ function that counts sentences through finding '.'(dots) 
      not quite cool but will work """ 
    return file.count('.') 
print "\nКількість речень в тексті: %d" % count_sentences(text) 

def longest_word(file): 
    """ function that finds the longest word in the text """ 
    return max(file.split(), key=len) 
print "\nНайдовше слово в тексті: '%s'" % longest_word(text) 

def shortest_word(file): 
    """ function that finds the longest word in the text """ 
    return min(file.split(), key=len) 
print "\nНайкоротше слово в тексті: '%s'" % shortest_word(text) 

def word_occurence(file): 
    """ function that finds how many times specific word occurs in text """ 
    return file.count("ноутбук") 
print "\nКількість разів 'ноутбук' зустрічається в тексті: %d" % 

word_occurence(text) 



print "\n\n\t\tЩоб завершити програму натисніть 'ENTER' " 
raw_input() 

Répondre

0

Je voudrais tout d'abord obtenir toutes les phrases liste (indice: texte partagé sur .), puis une boucle par des phrases et vérifier si le mot est spécifique ou non.

+0

J'ai divisé le texte comme vous le suggérez et maintenant j'ai une liste d'articles (phrases). Comment rechercher un mot spécifique dans chaque article? J'ai essayé .count mais cela ne marchera pas car il ne trouve que des éléments et ne les regarde pas pour quelque chose –

+0

Vous pouvez parcourir la liste (en utilisant 'for') pour obtenir chaque phrase. C'est là que vous utilisez 'count()'. – Fejs