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