分析标签集的最佳方法?

Posted

技术标签:

【中文标题】分析标签集的最佳方法?【英文标题】:Best approach to doing analysis of sets of tags? 【发布时间】:2012-05-09 18:49:49 【问题描述】:

我有数千个已根据回复内容标记的调查回复。每个响应可以有一个或多个标签(最多 20 个),并且标签相互独立,而不是被构造成类别-子类别或其他东西。

我希望能够进行如下分析:

给定标签有多少个实例? 总体上哪些标签出现频率最高? 标签 X 出现在哪里,还有哪些其他标签最常出现? 所有标签及其旁边的计数的列表 选择数据子集进行类似分析(例如按国家/地区)

与我一起工作的人历来都在 Excel 中解决所有问题(一般业务战略咨询工作),但在这种情况下不会奏效。他们的反应是将项目框架更改为 Excel 可以在数据透视表中处理的东西,但如果我们可以使用更强大的工具来支持更复杂的关系,那就更好了。

我一直在学习 SQLite,但开始担心我想做的事情会非常复杂。

我也一直在学习 Python(出于不相关的原因),我有点想知道 ORM 工具和一些 Python 代码是否是更好的选择。

然后是 Access 之类的东西(我没有,但如果它是这类东西的最佳选择,我可能愿意获得)。

总之,我很想知道这些分析总体上会有多难,以及哪些工具最适合这项工作。我完全接受我正在以一种倒退的方式思考部分或全部问题的想法,并且欢迎就我在这里所写内容的任何方面提出任何建议。

【问题讨论】:

理想情况下,分析至少会定期进行。 【参考方案1】:

将所有标签收集到一个列表中,并使用 python collections.Counter 和相关方法来获取频率和许多其他统计信息。就这样

>>> from collections import Counter
>>> x=['java', 'python', 'scheme', 'scheme', 'scheme', 'python', 'go', 'go', 'c',
... 'c']
>>> freqs = Counter(x)
>>> freqs.most_common(1)
[('scheme', 3)]
>>> 

【讨论】:

【参考方案2】:

虽然有关单个标签频率的数据应该很容易构建,但有关标签之间关系的数据却非常困难,属于数据挖掘的范畴。假设您有一个响应表、一个标签表和一个 response_tag 表,我将在非常高的级别上执行以下操作。

创建一个汇总表,其中列出了响应标签的每个唯一组合,以及一个指示该组合出现次数的列。表结构应该类似于combination (id, count)combination_tags(combination_id, tag_id)。使用过程语句(ORM 或 SQL 游标)填充表,然后使用即席查询对数据进行采样。

这不是一个简单的操作,但它会使用简单的 RDBMS 为您提供结果,而无需使用企业级数据挖掘解决方案。

【讨论】:

【参考方案3】:

你有一个很小的数据集,所以你真的不需要任何类型的 ORM,只需在 Python 中加载所有数据并咀嚼它的报告。

SQL 作为一种语言对于更复杂的数据分析来说是可怕的(例如,在您真正想要交叉制表的地方等)。

【讨论】:

【参考方案4】:

使用 SQL!它对于数据分析非常强大。它将允许您在未来询问有关数据的问题。你还没有想到的问题。

虽然 SQL 作为一种语言可能看起来有点麻烦,但它比“真正的”编程语言更容易使用。就您而言,SQL 与 Excel 接口,因此用户可以通过他们熟悉的工具访问数据。

如果您确实使用 SQL,那么真正的数据库 (SQLLite) 是比 MSAccess 更好的解决方案。

我对 SQL 作为一种分析工具有足够的感觉,因此我写了一本关于该主题的书,“使用 SQL 和 Excel 进行数据分析”。您可以查看 Amazon cmets (http://www.amazon.com/Data-Analysis-Using-SQL-Excel/dp/0470099518/ref=pd_sim_b_1) 以了解它的效果。

【讨论】:

以上是关于分析标签集的最佳方法?的主要内容,如果未能解决你的问题,请参考以下文章

天蓝色流分析实施或最佳方法

用于提供多类图像数据集的方法,其中文件夹名称可以用作Pytorch中的标签?

清理数据集的最佳方法 [关闭]

从 Azure Pipelines 创建 git 标签的最佳方法是啥?

BERT-多标签文本分类实战之四——数据集预处理

BERT-多标签文本分类实战之四——数据集预处理