У меня есть несколько текстовых файлов в папке. Общее количество текстовых файлов составляет 21941. Мой код хорошо работает для небольшого количества текстовых файлов, но когда я запускаю 5000 текстовых файлов, он застревает при чтении. Когда я запускаю свой код для полных данных, для чтения данных требуется 3 часа, но я все еще не могу закончить чтение всех данных. Пожалуйста, помогите мне, как я могу улучшить свой код или как я могу использовать GPU или многопроцессорность для этой задачи.
этот блок кода читает файл и возвращает ему список слов.
def wordList(doc):
"""
1: Remove Punctuation
2: Remove Stop Words
3: return
"""
file = open("C:\\Users\\Zed\\PycharmProjects\\ACL txt\\"+doc, 'r', encoding="utf8", errors='ignore')
text = file.read().strip()
file.close()
nopunc=[char for char in text if char not in string.punctuation]
nopunc=''.join(nopunc)
return [word for word in nopunc.split() if word.lower() not in stopwords.words('english')]
Этот блок кода читает имена файлов из папки
file_names=[]
for file in Path("ACL txt").rglob("*.txt"):
file_names.append(file.name)
И этот блок кода создает словарь со всеми документами. имя файла в качестве ключа и его содержимое в виде списка.
documents = {}
for i in file_names[:5000]:
documents[i]=wordList(i)
это ссылка набора данных
Моя системная спецификация - четырехъядерный процессор I7 с 16 ГБ оперативной памяти.