分析标签集的最佳方法是什么?

时间:2012-05-09 18:49:50

标签: python sql excel ms-access

我有数以千计的调查回复,这些回复已根据回复的内容进行了标记。每个响应可以有一个标签或多个标签(最多20个),标签彼此独立,而不是构造成类别子类别或其他东西。

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

  • 给定标签有多少个实例?
  • 哪些标签最常出现?
  • 哪里有标签X,哪个标签最常出现?
  • 所有标签的列表,其中包含每个标签的数量
  • 选择数据的子集以进行类似的分析(例如,按国家/地区)

与我合作的人传统上处理Excel中的所有内容(一般业务战略咨询工作),在这种情况下不起作用。他们的回应是将项目框架更改为Excel可以在数据透视表中处理的内容,但如果我们可以使用更强大的工具来实现更复杂的关系,那将会更好。

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

我也一直在学习Python(出于无关的原因),并且有点想知道ORM工具和一些Python代码是否是更好的方法。

然后有一些类似Access的东西(我没有,但如果它是这类东西的最佳位置,可能会愿意获得)。

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

4 个答案:

答案 0 :(得分: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)]
>>> 

答案 1 :(得分:1)

虽然有关单个标签频率的数据构建起来非常简单,但有关标签之间关系的数据非常困难,属于数据挖掘领域。假设您有一个响应表,一个标记表和一个response_tag表,这就是我要做的非常高级的事情。

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

这不是一个简单的操作,但它可以使用简单的RDBMS获得结果,而无需使用企业级数据挖掘解决方案。

答案 2 :(得分:1)

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

SQL作为一种语言对于更复杂的数据分析来说是非常糟糕的(例如,你真正想要交叉的东西等)。

答案 3 :(得分:0)

使用SQL!它对数据分析非常有用。它将允许您将来提出有关数据的问题。你还没有想过的问题。

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

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

作为一种分析工具,我在SQL中感觉非常强烈,我写了一本关于“使用SQL和Excel进行数据分析”主题的书。您可以查看亚马逊的评论(http://www.amazon.com/Data-Analysis-Using-SQL-Excel/dp/0470099518/ref=pd_sim_b_1),了解它的效果。

相关问题