对比三种tf-idf提取关键词的效果

tf-idf(英语:term frequency–inverse document frequency)是一种用于信息检索与文本挖掘的常用加权技术。tf-idf是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。tf-idf加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。除了tf-idf以外,互联网上的搜索引擎还会使用基于链接分析的评级方法,以确定文件在搜索结果中出现的顺序。(WikiPedia)

在我的工作流程中,中文分词后往往最重要的事情是提取关键词,正如文章开头写到的,tf-idf法作为历史悠久的统计方法,效果优秀,原理和实现简单,成为必须尝试的提取关键词方法之一。而Python中能提供该方法的库有很多,哪种效果最优,哪种速度最快一直是我想要比较的,今天抽出时间写个对比小程序来看看结果,本次测试对比三种方法:jieba、sklearn、gensim。

测试方法

  1. 数据使用我自己爬的投融资类新闻,共计14100篇。
  2. 使用jieba_fast替代结巴,加快分词和tf-idf速度,jieba使用默认词频文件,不需建模。
  3. 所有需要建模的方法都提前对新闻数据使用jieba分词,使用精确模式,同时加载我自己的词库,用于发现未登录词。
  4. 随机选择三篇文章 …
➟ 查看全文

路由器自动翻墙

本文完全参考了飞羽博客文章,我这篇文章只做了微小的修改,用于备份自己的操作流程。想要查看更详细的LEDE+Shadowsocks配置细节的朋友可以跳转到那篇文章研究。

安装

安装密钥

wget http://openwrt-dist.sourceforge.net/openwrt-dist.pub
opkg-key add openwrt-dist.pub

新增源

查看路由器架构,需要添加相应的版本

cat /etc/os-release |grep "LEDE_ARCH" |awk '{split($0,a,"=");print substr(a[2],2,length(a[2])-2)}'

添加自定义源,下面arm_cortex-a9_vfpv3就是上面查到的版本

vim /etc/opkg/customfeeds …

➟ 查看全文

Mongo常用命令记录

导出

mongoexport -d db_mongo -c news -f title,date,contents,rawtag -o ~/news.json

导出使用mongo自带的mongoexport命令,参数解释如下:

-d:数据库名称

-c:集合名称

-f:字段名,不指定则为全部

-o:输出文件

导入

导出通常是在服务器上的操作,然后scp到本地,如果文件过大,首先要压缩一下

tar -czf news.tar.gz -C /home/kevin news.json

-c:创建压缩文件

-z:使用gzip压缩

-f:使用文件归档

-C:指定文件目录 …

➟ 查看全文

多Shadowsocks服务器负载均衡

玩翻墙主机的人哪个没有好几个小鸡,所以多主机负载均衡访问这个需求应运而生,开源软件界当然已经有可以解决这个问题的软件——Haproxy

HAProxy是一个使用C语言编写的基于TCP和HTTP的应用程序代理,其提供高可用性、负载均衡。

整套系统的流程如图

流程图

Haproxy

安装就不必多讲了,直接看看配置文件,默认在/etc/haproxy/haproxy.cfg

global
    log /dev/log local0
    log /dev/log local1 notice
    user root
    group root
    daemon

defaults
    log global
    mode tcp
    timeout connect 5s
    timeout client 5s
    timeout server 5s
    option      dontlognull
    option      redispatch
    retries …
➟ 查看全文

Netlify全自动部署静态博客

netlify

Netlify是一家位于旧金山的云计算公司,为静态网站提供托管和无服务器后端服务。 它具有Git在全球应用交付网络中的持续部署,无服务器表单处理,对AWS Lambda功能的支持以及与Let’s Encrypt的完全集成。它提供免费和付费计划。 维基百科(英文)

在之前,我使用Python写的Pelican程序生成静态博客,然后托管到Github Pages。长期使用这个组合后,发现这样有很多缺点:

  1. github pages在国内访问速度较慢,有的地方甚至给屏蔽掉了。

  2. 使用免费版cloudflare加速效果并不明显,要调教的东西还很多

  3. 跨平台非常麻烦,因为github pages只接受output文件夹(只包含HTML),其余的环境还需要建个仓库备份起来。

在了解了Netlify的作用之后,我发现网上写的教程都是怎么把它当做一个静态环境使用,也就是类似于github pages,完全忽略了他的自动部署功能,然而这个功能才是我迁移到Netlify的最大理由。下面说说怎么一步步完成迁移。

一、在github新建一个repo

我之前的博客就是托管在github的,但是原来的是github pages,原来的仓库里只有静态html,而新建的这个仓库将来会把所有环境放进去,让Netlify帮我自动生成静态文章。

新建好后就先放在那,最后才会用到。

new repo

二、本地新建模拟环境

我自己的Python环境是3.7.1,Netlify当前对Python的最高支持版本是3 …

➟ 查看全文