查看文本中找到的7个最常见的单词,但将单词作为常用单词进行排序

时间:2016-10-25 08:55:20

标签: python compare text-files counter words

真的需要一些帮助才能解决这个问题,或者有人能以正确的方式指出我,谢谢!

查看文本中找到的7个最常见的单词,但整理出常用单词。您可以在common-words.txt中找到常用单词列表。

common-words.txt =许多不同的词。

首先我在文中找到了7个最常用的单词,这就是我的代码的样子。

    print("The 7 most frequently used words is:")
    print("\n")

    import re
    from collections import Counter

    with open("alice-ch1.txt") as f:
        passage = f.read()

    words = re.findall(r'\w+', passage)

    cap_words = [word.upper() for word in words]

    word_counts = Counter(cap_words).most_common(7)

    print(word_counts)

这有效,我得到输出:

[('THE', 93), ('SHE', 80), ('TO', 75), ('IT', 67), ('AND', 65), ('WAS', 53), ('A', 52)]

现在我想比较两个文本文件,如果我的TEXTFILE.TXT中的任何单词在COMMON-WORDS.TXT中,我希望它从答案中删除。

我试图用这段代码运行它:

    dic_no_cw = dict(word_counts)
    with open("common-words.txt", 'r') as cw:
        commonwords = list(cw.read().split())
        for key, value in list(dic_no_cw.items()):
            for line in commonwords:
                if key == line:
                    del dic_no_cw[key]

    dict_copy = dict(dic_no_cw)

    dic_no_cw7 = Counter(dic_no_cw).most_common(7)
    sorted(dic_no_cw7)

    print(dic_no_cw7)

我得到相同的输出:

[('THE', 93), ('SHE', 80), ('TO', 75), ('IT', 67), ('AND', 65), ('WAS', 53), ('A', 52)]

真的可以使用som帮助来解决这个或一些帮助,所以我也许可以自己弄清楚。

谢谢,

2 个答案:

答案 0 :(得分:1)

您可以尝试替换代码的这些行:

for line in commonwords:
    if key == line:
        del dic_no_cw[key]

for line in commonwords:
    if key.strip() == line.upper().strip():
        del dic_no_cw[key]
        break

答案 1 :(得分:0)

我还没有检查过,但我认为你可能只是检查dict中的值(表示单词出现的次数)而不是检查键(实际单词本身)与commonwords列表中的单词进行比较:

我相信if value == line:应该是if key == line: