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
0
+1
0
+1
1
+1
0

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *