我想分析一项网络调查的答案(Git User's Survey 2008如果有人感兴趣的话)。其中一些问题是自由形式的问题,例如“您是如何听说 Git 的?”。由于有超过 3,000 条回复,完全手工分析这些回复是不可能的(特别是本次调查中有相当多的自由形式问题)。
我如何至少半自动地将这些回复(可能基于回复中使用的关键词)分组(即程序可以要求确认),以及稍后如何制表(计算每个类别中的条目数)那些自由形式的回复(答案)?一个答案可以属于多个类别,但为了简单起见,我们可以假设类别是正交/互斥的。
我想知道至少是要搜索的关键字,或者要使用的算法(方法)。我更喜欢 Perl(或 C)中的解决方案。
可能的解决方案1.(部分):贝叶斯分类
(2009-05-21 添加)
我想到的一个解决方案是使用诸如贝叶斯垃圾邮件过滤算法(及其背后的数学方法)之类的东西,而不是一两个类别(“垃圾邮件”和“火腿”),会有更多;并且类别本身将自适应/交互地创建。
最佳答案
文本::Ngrams + 算法::集群
- 使用Text::Ngrams为每个答案生成一些向量表示(例如字数) .
- 使用Algorithm::Cluster对向量进行聚类确定分组以及与分组相对应的关键字。
关于statistics - 如何对调查中问题的自由形式答案进行分类和表格化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/887954/