Python: считаем частоту слов, содержащихся в текстовом файле
Постановка задачи
Задача состоит в том, чтобы написать программу для чтения содержимого текстового файла и создания словаря отдельных слов и частоты появления слова в текстовом файле. затем либо отобразить частоты, либо сгенерировать их во втором файле.
входные данные:
текстовый файл, содержащий текст
выход:
частоты слов, встречающихся в тексте, и текстовый файл с ним
Решение:
прочитать содержимое текстового файла
обработать текст, удалив знаки препинания и переведя его в нижний регистр
сохранить обработанный текст в файл
прочитать обработанный файл и прочитать его слово за словом
занести слово в словарь и установить счетчик на плюс один каждый раз, когда слово встречается в тексте
предположение:
текстовый файл содержит текст, который нужно прочитать
#!/usr/bin/ python3
"""this code is to count word frequency in a text file"""
#importing module
import string
import json
"""эта функция предназначена для предварительной обработки текстового файла путем удаления знаков препинания и перевода в нижний регистр букв"""
def preprocess(file):
with open(file, 'r') as fileData:
for textline in fileData:
#разделяем слова на буквы
wordsList = textline.split()
x = [''.join(c for c in s if c not in string.punctuation) for s in wordsList]
x = [x.lower() for x in x]
y = " ".join(x)
fila = open(prefile, "a")
fila.write(y+"\n")
def cleartxt():
f = open(prefile, "w")
f.write("")
filename = 'BohemianRhapsody.txt'
prefile = 'preprocessed.txt'
dictionary = {}
preprocess(filename)
with open(prefile, "r") as f:
words = f.read().split()
words = list(words)
words = sorted(words)
for x in words:
if x in dictionary:
dictionary[x] += 1
else:
dictionary[x] = 1
print(open(filename, "r").read(),'\n')
print("--- DICTIONARY OF WORDS ---\n",dictionary)
with open('wordfreq.txt', 'w') as convert_file:
convert_file.write(json.dumps(dictionary))
cleartxt()
+1
1
+1
+1
+1
1
+1