J'ai un ensemble de documents, et je veux retourner une liste de tuples où chaque tuple a la date d'un document donné et le nombre de fois qu'un terme de recherche donné apparaît dans ce document. Mon code (ci-dessous) fonctionne, mais il est lent, et je suis un n00b. Existe-t-il des moyens évidents de rendre cela plus rapide? Toute aide serait très appréciée, surtout pour que j'apprenne à mieux coder, mais aussi pour que je puisse faire ce projet plus rapidement!Comment puis-je compter les mots dans un texte en clair de nltk plus rapidement?
def searchText(searchword):
counts = []
corpus_root = 'some_dir'
wordlists = PlaintextCorpusReader(corpus_root, '.*')
for id in wordlists.fileids():
date = id[4:12]
month = date[-4:-2]
day = date[-2:]
year = date[:4]
raw = wordlists.raw(id)
tokens = nltk.word_tokenize(raw)
text = nltk.Text(tokens)
count = text.count(searchword)
counts.append((month, day, year, count))
return counts
Exécutez un profileur comme dans le module 'profile' et voyez ce que cela signifie. – John