Словарь / количество слов, сколько раз слово используется в текстовом файле. - PullRequest
0 голосов
/ 12 декабря 2018

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

    dropChars = "*!@#$%ˆ&()½_+-={}[]|\\:;\"’<>,.?/1234567890"
    dropDict = dict([(c, ' ') for c in dropChars])
    dropTable = str.maketrans(dropDict)

    with open(input("Paste file path here: "), 'r') as file:

    wordNum = 0;
    table = {}  # dictionary: words -> set of line numbers
    for line in file:
    words = line.upper().translate(dropTable).split()

    for word in words:
        wordNum += 1
        if word in table:
            table[word] = table[word] + 1
        else:
            table[word] = 1

        sorted_table = (sorted(table.items(), key=lambda kv: kv[1], reverse=True))


        for (k,v) in sorted_table:

        print(str(k) + " :   " + str(v))

1 Ответ

0 голосов
/ 13 декабря 2018

По какой-то причине это не работает, когда я считаю, что это должно ...

 dropChars = "*!@#$%ˆ&()½_+-={}[]|\\:;\"’<>,.?/1234567890"
 dropDict = dict([(c, ' ') for c in dropChars])
 dropTable = str.maketrans(dropDict)

 english_words = open("/Users/MaxEllis/Desktop/Griffith/Repo/english_words.txt", "r+")
 e_words = set(word.strip().lower() for word in english_words)


 def is_english_word(word):
     return word.lower() in e_words


 with open(input("Paste file path here: "), 'r') as file:
    # Make a translation table for getting rid of non-word  characters
    wordNum = 0;
    table = {}  # dictionary: words -> set of line numbers
    for line in file:
    words = line.upper().translate(dropTable).split()

    for word in words:
        wordNum += 1
        if word in table:
            table[word] = table[word] + 1
        else:
            table[word] = 1

 sorted_table = (sorted(table.items(), key=lambda kv: kv[1], reverse=True))

 for (k, v) in sorted_table:
     print(str(k) + " :   " + str(v))

 english_words.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...