Python 分析标记集的最佳方法?
我有成千上万的调查回复,这些回复已经根据回复的内容进行了标记。每个响应可以有一个或多个标记(最多20个),并且标记彼此独立,而不是被构造为类别子类别或其他内容 我希望能够进行如下分析:Python 分析标记集的最佳方法?,python,sql,excel,ms-access,Python,Sql,Excel,Ms Access,我有成千上万的调查回复,这些回复已经根据回复的内容进行了标记。每个响应可以有一个或多个标记(最多20个),并且标记彼此独立,而不是被构造为类别子类别或其他内容 我希望能够进行如下分析: 给定标记有多少个实例 总的来说,哪些标记出现得最频繁 在存在标记X的位置,哪些其他标记最常与其一起出现 所有标记的列表及其旁边的每个标记的计数 选择要进行类似分析的数据子集(例如,按国家) 与我共事的人传统上都是用Excel(一般业务战略咨询工作)处理所有问题,但在这种情况下,这是行不通的。他们的回应是将项目
- 给定标记有多少个实例
- 总的来说,哪些标记出现得最频繁
- 在存在标记X的位置,哪些其他标记最常与其一起出现
- 所有标记的列表及其旁边的每个标记的计数
- 选择要进行类似分析的数据子集(例如,按国家)
总之,我很想知道这些类型的分析在总体上有多困难,哪些工具最适合这项工作。我完全接受这样一种观点,即我正在以一种倒退的方式思考部分或全部问题,并欢迎就我在这里所写内容的任何方面提供任何建议。将所有标记收集到一个列表中,并使用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)]
>>>
虽然有关单个标记频率的数据应该非常容易构建,但有关标记之间关系的数据非常困难,属于数据挖掘领域。假设您有一个响应表、一个标记表和一个response_标记表,我将在一个非常高的级别上执行以下操作 创建一个汇总表,列出响应标记的每个唯一组合,以及一列,该列将指示此组合出现的次数。表结构应该类似于
composition(id,count)
,composition\u标记(composition\u id,tag\u id)
。使用过程语句(ORM或SQL游标)填充表,然后使用特殊查询对数据进行采样
这不是一个简单的操作,但它将使用一个简单的RDBMS获得结果,而不必使用企业级数据挖掘解决方案。您的数据集非常小,因此您实际上不需要任何类型的ORM,只需在Python中加载所有数据并仔细阅读报告即可
SQL作为一种语言,对于更复杂的数据分析来说是可怕的(例如,您真的想在哪里交叉列表等)。使用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)了解它的有效性。理想情况下,至少应定期进行分析。