真的需要一些帮助才能解决这个问题,或者有人能以正确的方式指出我,谢谢!
查看文本中找到的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帮助来解决这个或一些帮助,所以我也许可以自己弄清楚。
谢谢,
答案 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:
。