过滤豆瓣租房小组中介贴之 python 实现 TF-IDF 算法(二)

前段时间写过一篇 过滤豆瓣租房小组中介贴之 python 实现余弦相似度(一), 这里面使用 jieba 将文档分词,然后计算对分词的结果向量化计算相似度。比如 我的房子在方庄地铁附近的芳城园一区 会被分词为 方庄 芳城园 一区 地铁 房子 附近,我们发现少了 我 的 在 这些词,在自然语言处理的过程中,称这些词为停用词,简单的说就是这些词对于分词结果没有多少帮助,所以需要直接过滤掉。因为我们直接调用 jieba.analyse 方法,所以停用词被直接过滤了,如果只是调用 jieba.cut,会将返回包含停用词的结果。

Read More

过滤豆瓣租房小组中介贴之 python 实现 布隆过滤器(三)

其实这篇文章跟过滤中介贴没什么关系,只是在爬豆瓣小组的时候遇到的一点思考,我们知道,其实爬虫就是循环的爬取网站的 url,但是怎么判断爬取的 url 是否重复呢,最简单的,维护一个列表,每次循环查找,很明显效率很低。进阶的,采用哈希表,每次查询都是 O(1), 看上去不错。不过如果一旦 url 大到一定程度时,单台机器的内存肯定吃不消,这个时候分布式方案就呼之欲出,变得越来越复杂。那么能不能在牺牲一点点精确性的前提下,有简单的方案呢,答案是肯定的。这就是 布隆过滤器。

Read More

ghost 博客中文搜索插件

在用 ghost 博客的时候,发现一直没有合适的搜索插件,主要是官方没提供相应的 search api, ghostHunter 采用 api 获取所有文章的方式,然后用 lunir 做全文搜索。但是 lunir 本身不支持中文分词,虽然有小伙伴提供了中文分词的方案,但是为了一个简单的搜索加了好大一堆库,感觉还是不怎么经济。

所以鉴于此,根据 ghsotHunter 改了个简单的插件,为了效率,api 获取的时候只取 title, 所以只支持简单的 title 匹配搜索, 代码如下:

1
2
3
4
5
6
var searchResult = [];
for(var i=0; i < this.blogData.length; i++) {
if(value && this.blogData[i].title.toLowerCase().search(value.toLowerCase()) != -1){
searchResult.push(this.blogData[i]);
}
}

Read More

2016 关于技术和人生的一些碎碎念

这几天知乎上有个问题很火,如何评价真阿当的文章:《2016年前端技术观察》?, 主要还是围绕前端这两年新技术发展的讨论。以前语言之间一比较就会撕起来,现在前端领域都能引发这么大的轰动,足见这几年前端的火爆。文章中吐槽前端的一些问题确实存在,我觉得不算是一件坏事,这本来就是个百家争鸣的时代,事物是慢慢发展的,总有一天会出现很成熟的前端方案。至于对于新人的影响,也希望单纯为了一份高工资而盲目进入这个行业的人能谨慎考虑下。

有一天我偶然听到一妹子跟她老板说想要搞数据分析,然后她老板耐心的跟她解释,现在没有什么数据可以分析,再说你是文科专业的,数据分析学起来可能比较困难。首先我对于妹子上进心还是赞许的,但是我觉得是不是现在有些行业被炒的过火了,比如数据分析,如果达到全民搞数据分析的程度,那肯定是有问题了。不否认数据本身是有它的价值的,但数据也不是万金油,盲目的去分析毫无意义。说到底数据分析也是为解决问题服务的。

我一直不认为做技术比做其他工作有优越感,只是由于运气好赶上了互联网的发展。大多数从菜鸟到别人眼中的大牛,其实也就是多看了几本书,多实践了几个项目而已。我在年终述职中对自己的展望是用平和的心去看待这个世界,做技术难免有自己的执念,有时候放下执念,看看这个真实的世界,好多美好的东西就不会错过。

以上都是碎碎念,生活不只是有技术,还有诗和远方。