如何计算相关性分数?

Posted

技术标签:

【中文标题】如何计算相关性分数?【英文标题】:How to calculate relevance score? 【发布时间】:2021-07-22 07:19:55 【问题描述】:

我正在尝试使用来自 json 文件的评论来计算相关性分数。每次我尝试运行我的代码时,它只会说“间接”输出。 我做错了什么?

我的代码如下:

import joblib, requests, json, sklearn.metrics, sklearn.model_selection, sklearn.tree, time, math, textblob

import warnings
warnings.filterwarnings("ignore")

response = requests.get("https://appliance_reviews.json")

if response:
    data = json.loads(response.text)
    
    unique = []
    word = []
    for line in data:
        #print(line)
        
        review = line["Review"]
        blob = textblob.TextBlob(review)
        
        for word in blob.words:
            
            if word.lower() not in unique:
                unique.append(word.lower())
   
    for word in unique:
        a = 0
        b = 0
        c = 0
        d = 0
       
        for line in data:
           
            review = line["Review"]
            safety = line["Safety hazard"]
           
            if word in review.lower() and safety == 1:
                a += 1
            if word in review.lower() and safety == 0:
                b += 1
            if word in review.lower() and safety == 1:
                c += 1
            if word in review.lower() and safety == 0:
                d += 1
        
        try:
            rel_score = (math.sqrt(a + b + c + d) * ((a + d) - (c * b))) / math.sqrt((a + b) * (c + d))
        except:

            rel_score = 0
            
        if rel_score >= 4000:
            score.append(word)
    print(word)

【问题讨论】:

请提供预期见MRE - Minimal, Reproducible Example。显示中间结果与预期结果的偏差。我们应该能够将您的代码块粘贴到文件中,运行它并重现您的问题。这也让我们可以在您的上下文中测试任何建议。 您发布的代码不是最少的:您已经导入了 10 个包来支持相关性分类。您还没有追踪中间结果,而且您​​通过使用通用变量名称而不解释您的算法使我们难以做到这一点。 您希望总共获得多少单词?对行动规模的想法可能会导致不同的选择。 【参考方案1】:

word 将是您在给定代码的最后一行打印时unique 中的最后一个条目,无论其得分如何。您刚刚退出了 for 循环,其中 word 是迭代变量。

你确定不想打印score,好像是为了积累unique的高分词?

我也认为你的得分被打破了。例如,编码时,ac 总是相等的,bd 也是如此。 “carpet”会影响“car”、“pet”甚至“carp”的得分。

正如 Prune 在 cmets 中提到的那样,您对变量名称的平淡选择使理解代码的目的变得困难。

【讨论】:

以上是关于如何计算相关性分数?的主要内容,如果未能解决你的问题,请参考以下文章

如何计算分数?

根据python中的值计算字典的相关性

R语言使用psych包的principal函数对指定数据集进行主成分分析PCA进行数据降维(输入数据为原始数据)计算每个样本(观察)的主成分的分数计算得分与特定变量的相关性并解读结果

python相关性分析如何生成两个相关性最强的两门?

R语言使用psych包的principal函数对指定数据集进行主成分分析PCA进行数据降维(输入数据为相关性矩阵)计算主成分评分系数每个样本(观察)的主成分得分由主成分分数系数构建的公式得到

MySQL - 具有部分单词匹配和相关性分数的高效搜索 (FULLTEXT)