Python 给短语打分

Python 给短语打分,python,Python,我对python编程相当陌生,我试图给包含某些元素的短语或单词打分,而不使用停止词 我试着把分数平分,但还是有错误 list = ["information", "james", "goat"] phrase = ["information is", "James is a boy" ,"goat"] score = [] for n in phrase: score.append(phrase.count(n)) print(phrase) print(score) 我希望输出

我对python编程相当陌生,我试图给包含某些元素的短语或单词打分,而不使用停止词

我试着把分数平分,但还是有错误

list = ["information", "james", "goat"]
phrase = ["information is", "James is a boy" ,"goat"]

score = []
for n in phrase:
    score.append(phrase.count(n))


print(phrase)
print(score)
我希望输出是[(“信息是”,0.1),(“詹姆斯是个男孩”,0.2),(“山羊”,0.1)],但我得到了[信息是,詹姆斯是个男孩,山羊]
[1,1,1]

您有两个值列表,并且希望将它们配对。答案是内置的zip函数。试一试

zip(phrase, score)
它生成对应的元素对。(因为它是一个生成器,如果您想查看您可能希望使用的所有值
列表(zip(短语,分数))


你看到的是
1
而不是
0.1
,因为list
count
方法总是返回所看到的整数次。你能解释一下为什么这些是你期望看到的分数吗?你在
短语的每个元素
n
上循环,然后计算出现的次数
n
短语中的ars
。在您的情况下,每个元素都是唯一的,因此您得到
[1,1,1]
。您的意思是输出中的最后一项(“goat”,0.3)?你的代码有不止一个错误,那么你的问题是什么?我想用短语中包含的列表中的单词数给每个短语打分。例如,如果一个短语包含列表中的两个单词,给它0.2分,如果它只包含一个,给它0.1分,如果它包含3个,给它0.3分….E.t.c