我正在尝试使用Python将csv(txt)文件中的单词与另一个csv(txt)文件中的单词进行比较。然后我尝试根据它们的相似性计算得分。一个文件(Answer.txt)包含测试的答案。另一个(Test.txt)包含测试的定义和答案。问题是我对编码很新,而且两个文件都有不同的布局。例如,Answers.txt的布局如下:
dog,cat,sheep
Test.txt的布局如下:
definition_1,def_2,def_3
dog,cat,sheep
对于Answer.txt中的每一行,我试图将每个单词与Test.txt中的最后一行进行比较。我也试图根据匹配的单词计算得分。如果一个单词匹配,我希望获得2分。例如:
如果Answer.txt中的答案说:
dog,cat,sheep
Test.txt中的答案说:
dog,cat,sheep
...将计算得分为6分。但是,如果Answers.txt中的答案说:
dog cat,shep
...然后将获得4分,因为'sheep'与Test.csv不匹配。
我希望将这个“得分”添加到另一个名为“Score.txt”的文件的记录末尾。
对不起,不好意思。这简直就像我可以解释一样简单。你的帮助将受到大力赞赏!
添加了:
我不知道从哪里开始。但是,我编写了将用户输入存储在Answers.txt中的函数:
def ask_question(number, definition):
""" Asks a question for definition number """
print "Definition {}: {}".format(number, definition)
return raw_input("Answer: ")
def sit_a_test():
results = []
with open("Test.txt", "rb") as f:
for row in csv.reader(f):
results.append(list(ask_question(no, def) for no, def in enumerate(row))))
with open("Score.txt", "wb") as f:
writer = csv.writer(f)
writerow.writerows(results)
答案 0 :(得分:1)
你可以尝试这样的东西,使用numpy
import numpy as np
# Load the files:
answers = np.loadtxt(open("Answer.txt"), dtype='str', delimiter=",")
test = np.loadtxt(open("Text.txt"), dtype='str', delimiter=",")
# Compare
scores = 2 * np.sum(answers == test, axis=0)
# save
np.savetxt("Score.csv", scores, delimiter=",")