爬了知乎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()