Есть ли способ сделать переменную в C доступной только для файла, в котором она была объявлена?

Ответ @ alvas выполняет эту работу, но ее можно сделать быстрее. Предположим, что у вас есть documents: список строк.

from nltk.corpus import stopwords
from nltk.tokenize import wordpunct_tokenize

stop_words = set(stopwords.words('english'))
stop_words.update(['.', ',', '"', "'", '?', '!', ':', ';', '(', ')', '[', ']', '{', '}']) # remove it if you need punctuation 

for doc in documents:
    list_of_words = [i.lower() for i in wordpunct_tokenize(doc) if i.lower() not in stop_words]

Обратите внимание, что из-за того, что здесь вы ищете в наборе (не в списке), скорость будет теоретически len(stop_words)/2 раз быстрее, что важно, если вам нужно работать с несколькими документами.

Для 5000 документов размером около 300 слов разница составляет 1,8 секунды для моего примера и 20 секунд для @ alvas.

PS в большинстве случаев вам нужно разделить текст на слова, чтобы выполнить некоторые другие задачи классификации, для которых используется tf-idf. Поэтому, скорее всего, было бы лучше использовать штокмер:

from nltk.stem.porter import PorterStemmer
porter = PorterStemmer()

и использовать [porter.stem(i.lower()) for i in wordpunct_tokenize(doc) if i.lower() not in stop_words] внутри цикла.

0
задан Jonathan Leffler 18 September 2011 в 17:20
поделиться