Проблемы с подсчетом слов в текстовом файле - PullRequest
0 голосов
/ 20 июня 2020

Я пытаюсь заставить эту программу работать, но сейчас у меня есть некоторые проблемы. Я хочу, чтобы этот код считывал общее количество слов в этом текстовом файле . Это то, что у меня есть на данный момент:

import os

openfile = input('Enter the input file: ')

accumulator = 0
accumulator2 = 0
accumulator3 = 0
accumulator4 = 0
word = 'PMID'
word2 = 'LA'
word3 = 'PT  - Journal'
try: 
    file = open(openfile, 'r')
    lines = file.readlines()

    with open(openfile, 'r') as f:
        lines = f.readlines()

    for line in lines:
        if word in line:
                accumulator += 1

        if word2 in line:
            accumulator2 += 1

        if word2 in line:
            accumulator3 += 1

        if 'Journal' in line and 'LA' in line:
                accumulator4 += 1

    print('there are:',accumulator ,'PMID')
    print('there are:',accumulator2 ,'LA')
    print('there are:',accumulator3 ,'PT')
    print('there are:',accumulator4 ,'PT and LA')
    exit()

except FileNotFoundError:
    print('Input file not found.')
    print('Please check the file name or the location of your input file.')

Я хочу, чтобы он также считал текстовые блоки, содержащие вместе «LA - eng» «PT - Journal article» как один (как третий блок). Есть ли способ сделать это, даже если они находятся в разных строках? Спасибо вам большое!

1 Ответ

0 голосов
/ 20 июня 2020

Этот метод, который у меня есть из курса, который я когда-то изучал на Pluralsight go, будет выводить количество экземпляров каждого слова в файле. Это полезно при работе с алгоритмами анализа настроений:

    results = dict()
    with open(filename, 'r') as f:
        for line in f:
            for word in line.split():
                results[word] = results.setdefault(word, 0) + 1

    for word, count in sorted(results.items(), key=lambda x: x[1]):
        print('{} {}'.format(count, word))

Вы можете запустить его следующим образом в версии PyCharm Community, имея файл в том же каталоге, что и проект:

убедитесь, что метод определен выше основной проверки.

if __name__ == '__main__':
    count_words('word_file.txt')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...