我刚开始学习机器学习,正在使用 sklearn 和 nltk 进行我的“hello world”项目,但我在预测结果上遇到了问题,它总是返回一个单一的值。
我按照一个我找到的教程进行操作,该教程有错误,我一点一点地修改它,直到最后得到了结果,但结果并不是我期望的。
附上教程链接: https://towardsdatascience.com/text-classification-using-k-nearest-neighbors-46fa8a77acc5
附上我当前的代码:(总是显示:“Conditions”作为最终结果)
(代码内容省略)
回答:
在教程中,similarity_score()
方法试图为 s1 中的每个 synset 找到最高的相似度并对它们进行平均。然而,它没有将 s1 中无法在 s2 中找到任何 synset 的词纳入考虑。在我看来,如果我们在这些情况下将零添加到 s1_largest_scores
中会更合理。
以两句话 "Will it be uncomfortably hot?"
和 "will it rain"
为例。教程中的方法会给出 1 的相似度,而我提出的方法会给出 0.53 的相似度。这两句话属于不同的类别,所以我们希望相似度较低。
这是我的代码:
(代码内容省略)