我正在寻找一种算法,可以根据加权关键字为文章提供分数。
假设我有以下文章:
石油和天然气行业日益减少的经济焦虑正在引发对未来的疑难问题。它也正在塑造一场参议院竞选,民主党人正在寻求在一个长期由共和党统治的州内再次当选。
我有以下具有给定重量(-100到100)重要性的关键字:
这意味着我想要一篇关于经济,参议院和民主党的文章得到一个高分,但只有一篇关于Repulicans获得低分的文章。 一个简单的解决方案似乎只是添加文章中出现的关键字的值。但实际上,一篇文章的民主党人数是民主党人的5倍,而共和党人在文本中出现的这个词的1倍应该仍然排名较低。
我的问题是:针对此问题是否有高效和有效算法?
答案 0 :(得分:0)
如果我理解你,你可以通过注释你已经在一组中得分的单词来做到这一点。 Python中的示例:
article = """Economic anxiety amid a dwindling oil and gas industry is raising
difficult questions about the future. It is also shaping a Senate
race in which a Democrat is seeking re-election in a state long
dominated by Republicans."""
keyword_score = {'economic': 50,
'senate': 70,
'republicans': -100,
'democrats': 100}
seen_keywords = set()
score = 0
for word in article.split():
word = word.lower()
if word in keyword_score and word not in seen_keywords:
score += keyword_score[word]
seen_keywords.add(word)
print(score)
这样的话就不会被评分两次。