Как быстрее подсчитывать слова в nltk plaintextcorpus?

У меня есть набор документов, и я хочу вернуть список кортежей, в которых каждый кортеж содержит дату данного документа и количество раз, когда данный поисковый запрос встречается в этом документе. . Мой код (ниже) работает, но работает медленно, а я новичок. Есть ли очевидные способы сделать это быстрее? Любая помощь будет очень признательна, в основном для того, чтобы я мог лучше изучить код, но также и для того, чтобы я мог быстрее выполнить этот проект!

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
5
задан Tim McNamara 11 January 2011 в 05:44
поделиться