Рассчитать частоту слов из текстового файла, но есть ошибка в моем выводе - PullRequest
0 голосов
/ 12 ноября 2019

Читать все строки из файла и разбивать строки на слова, используя метод split (). Кроме того, удалите пунктуацию с конца слов, используя вызов метода strip("""!"#$%&'()*,-./:;?@[]_""")

Я очень новичок в Python и пытаюсь решить некоторые основные проблемы. Я использовал функцию split и strip в данной задаче, но яполучая ошибку в частотах некоторых слов, просмотрите мой код.

Код Python:

def word_frequencies(filename="alice.txt"):

    with open(filename) as f:
        string=f.read()

    words=string.split()

    l=[]

    for word in words:
        temp=word.strip("""!"#$%&'()*,-./:;?@[]""")

        if temp:
            l.append(temp)


    string2=[]

    for i in l:
        if i not in string2:
            string2.append(i)

    for j in string2:
        print(f"{j}\t{l.count(j)}")

Вывод:

The 64 

Project 83

Gutenberg   27

EBook   3

of  303

. ,,и т. д.

Но фактический результат равен:

The     64

Project 83

Gutenberg   26

EBook   3

of      303

. ,,и так далее

1 Ответ

1 голос
/ 12 ноября 2019

Используйте re.findall , чтобы разбить на слова:

from re import findall

words = findall(r"\b\w+\b", text)

, где текст - ваш f.read () .

Затем подсчитайте их:

from collections import Counter

c = Counter(words)

Проверьте количество слов:

for word in ("The", "Project", "Gutenberg", "EBook",):
    print(word, c[word])

Отпечатки:

The 64
Project 83
Gutenberg 83
EBook 3
...