您的位置:首页 > 编程语言 > Python开发

爬了点知乎数据,看看知乎都问啥。。

2016-07-09 14:26 302 查看
爬了知乎500w+的问题,估计不到问题总量的一半。

在这先看下大家都喜欢怎么提问。

以下根据频数排序,从高到低。

## 句首两字索引

如何 ##目前有意推出 ‘如何’ 这款类知乎产品,只差一个美工&一个前端&一个后台 or 全栈

为什 ##应该是: 为什么

怎么

怎样

如果

请问

有哪 ##哪些、哪种

中国 ##

一个 ##这个查了下SQL,后面跟的东西啥都有。。’个‘ 这个量词挺通用的。。

有没

## 句首三字索引
为什么

如何评

如何看

有哪些

有没有

有什么

如何在

201 ##应该为日期 。如 2016年我能脱单吗。。。。。。。

男朋友 ##这个。。。确实没想到

怎么看

## 句首四字索引
如何评价

如何看待

为什么有

为什么我

为什么很

为什么人

怎么看待

怎样才能

为什么在

如何理解

以我初中开始语文就不及格的水平来看。。
以 '如何' 开头的提问,可能更想获得是一种方法、结果,或者是一些主观的意识(如何评价XXX)。这想要的是现成的结果。

以 '为什么' 开头的提问,或许更看重事物的原理,想了解过程。

下面要做的就是继续爬点问题,看能不能把所有问题分为三大类:我是谁,我从哪来,我到哪去。。

#coding=utf-8
import re
import MySQLdb
#import gevent
from numpy import *
#from gevent.threadpool import ThreadPool##数据不多所以就没用并发
#class self_var:
#def __init__():

def get_data():
conn=MySQLdb.connect(
host='localhost',
port=3306,
user='root',
passwd='1234',
db='zhihu',
charset='utf8'
)
cur=conn.cursor()
cmd='select q from question'
cur.execute(cmd)
data=cur.fetchall()
return data

def create_vocabulary(data):
vocabulary={}
for i in data:
w=i[0][:4]
vocabulary[w]=vocabulary.get(w,0)+1##感觉最有用的就是这一行
return vocabulary
def store_data(file_name,data):#存储结果用
import pickle
op=open(file_name,'w')
pickle.dump(data,op)
op.close()
def extract_data(file_name):#提取存储的数据
import pickle
read_file=open(file_name)
return pickle.load(read_file)
def test():
from time import *
data=get_data()
time1=time()
vocabulary=create_vocabulary(data)
s=sorted(vocabulary.items(),key=lambda d:d[1],reverse=True)
for i in s[:10]:
print i[0]
time2=time()
print 'done',time2-time1
test()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息