python - 如何将 TF-IDF 矩阵转换为前 10 个单词的整体字典
问题描述
我正在尝试获取一些文本中单词的整体 tf-idf 分数。我正在遵循此处看到的计算 tf-idf 的手动方法:https ://towardsdatascience.com/natural-language-processing-feature-engineering-using-tf-idf-e8b9d00e7e76
我正在使用这些句子:['那个人出去散步','孩子们围坐在火边']
结果可以在这个熊猫数据框表中看到:
可以在这里看到用于显示 tf-idf 结果的字典:
[{'a': 0.09902102579427789, 'for': 0.09902102579427789, 'man': 0.09902102579427789, 'out': 0.09902102579427789, 'the': 0.0, 'walk': 0.09902102579427789, 'went': 0.09902102579427789},
{'around': 0.11552453009332421, 'children': 0.11552453009332421, 'fire': 0.11552453009332421, 'sat': 0.11552453009332421, 'the': 0.0}]
如何按顺序将这个 TF-IDF 结果字典列表转换为一个总体上排名最高的 tf-idf 结果字典?
解决方案
由于我们在这里只处理几句话,并且考虑到 TF-IDF 的性质,ig 整个文档中的词频与整个语料库中的词频,我们可以将您的结果按从大到小的顺序排列。为此,我们可以使用一种方法对您在问题中显示的字典进行排序。
def sort_dictionary(my_dict):
return {k: v for k, v in sorted(my_dict.items(), key=lambda item: item[1], reverse=True)}
这样做我们得到的结果是:
{'a': 0.09902102579427789, 'for': 0.09902102579427789, 'man': 0.09902102579427789, 'out': 0.09902102579427789, 'walk': 0.09902102579427789, 'went': 0.09902102579427789, 'the': 0.0}
符合文档或句子,我们用作输入。虽然我们在句子中有 13 个单词,但只有 7 个独特的单词,但如果我们有数百个单词,我们可以将搜索限制在排序字典中的前 10 个,这样我们就会得到前 10 个。
推荐阅读
- c# - listBox 按周和年排序
- flutter - 在 Flutter 中从资产中显示动画 GIF
- java - 多个类的计数器变量
- reactjs - 在反应中进行配置查找的正确方法是什么?
- openmodelica - OpenModelica 中是否有一个元素/块可以在不连接的情况下远程使用信号?
- powershell - 格式化 MemberOf 和 Members
- git - 当我们使用交互式变基时,原始提交会发生什么?
- typescript - Typescript:在多个(与 Firebase 相关的)库中找不到正确的类型
- amazon-web-services - 使用无服务器框架部署 lambda 函数的事件源创建问题
- php - jQuery DIV 刷新后保留 PHP 登录数据的问题