幻象客 - 博客

    教你如何使用Python向手机发送通知


    in 干货 , 技术原理 2019-07-17

    你曾想尝试在服务器端或电脑上向手机发送通知吗?

    你曾烦恼过企业邮箱的防骚扰机制吗?

    现在,我们可以用一种简单轻松的方法来代替企业邮箱了!

    进行以下的实验,你需要做好以下准备

    1)注册并在手机上下载IFTTT

    2)Python3

    下面是具体的操作步骤:

    1.首先在IFTTT上注册一个IFTTT账号 (https://ifttt.com).

    2.进入my_applets页面(https://ifttt.com/my_applets) ,新建一个applet.

    新建applet

    进去后点击 + this, 如图。

    add this

    搜索 webhooks.

    搜索webhooks

    进去后选择Receive a web request,

    这个trigger能够使得这个webhooks收到一个http请求后触发一个事件。

    receive a web request

    编写该trigger的名称

    编写event_name

    然后点击 that.

    that

    搜索notification.

    search_notification

    选择send a notification from the ifttt app.这个action能够使得ifttt发出一个通知。

    选择send a notification from the ifttt app

    里面可以设置消息的格式,其中:{{EventName}}是我们前面设定的事件名称,而Add ingredient里面的value1、value2、value3则是服务器端发送http请求时带的参数。

    ingredient

    可以设置成如下的格式:

    format

    Finish!

    Finish

    好了,准备完毕,我们开始编写Python脚本了!

    3. 现在,

    阅读更多...

    手把手教你人脸识别自动开机


    in 干货 , 技术原理 , 教程—智能化普通家居 , 机器学习 , 神经网络及深度学习 2019-06-23

    是不是厌烦了每次回家都要点击按钮打开电脑的操作?

    你如果有看过我以前的推送,是不是厌烦了每次回家都要喊“echo,turn on my pc”,让智能音箱打开电脑的操作?

    现在,我们有一个全新的操作,坐到椅子上就能让电脑开机!

    (避免你跟我一样,拥有一口蹩脚的英语,让echo听不懂的尴尬)

    本教程所需要的工具及应用:

    1. 一个树莓派3

    2. 一个可在树莓派3上运行的摄像头(我用的是罗技C270,树莓派官方摄像头也可以)

    3. Python3

    4. 路由器一台,及支持WakeOnLan的主机(大部分都支持)

    如果你只是想在windows/macos上尝试一下人脸识别,而不需要进行自动开机。

    1. Python3

    2. 一个可运行的摄像头

    自动开机效果演示:

    看不到的话可以访问链接:

    人脸识别开机

    1. 安装必要的组件

    windows/macOS:

    pip install opencv-python

    非常简单,和树莓派的安装复杂度不是一个级别的。

    树莓派:

    在树莓派上的安装过程比较复杂,需要耐心折腾,分为以下步骤:

    1.1 安装Cmake等编译openCV源码的工具
    sudo apt-get install build-essential cmake pkg-config
    1.2 安装几种常见格式的图像操作的包
    sudo apt-get install libjpeg...

    阅读更多...

    [准确率73%]向LSTM股价预测模型加入特朗普因子,准确率提升5%


    in 干货 , 技术原理 , 机器学习 , 神经网络及深度学习 , 算法 2019-05-22

    上一次推送中,我们使用LSTM基于26种日指标进行股票的预测,准确率达到68%(链接:[准确率:68%]基于日指标使用LSTM预测股价是否上涨(完善版)),今天我们准备再加一种指标,那就是特朗普指标,看看能否让准确率有所提升。

    这个特征应该怎么表示呢?我们提取特朗普的推特中包含“中国”的所有推特,并对他们进行感情色彩分类,分类标准使用艾克曼的六种基本情绪,分别为:

    Anger 1 生气

    Disgust 2 恶心

    Fear 3 害怕

    Joy 4 开心

    Sadness 5 伤心

    Sur、prise 6 惊奇

    其中,数字是我们将这些情感数字化后的特征。我们选取离那个交易日最近的包含中国关键词的特朗普推送的情感状态,作为那个交易日的特朗普因子特征。

    特朗普推特

    当然还会出现像下面这种情况,离我们发送推送的今天最近的推特里,特朗普那天发了9条推特,其中6条开心,1条害怕,2条生气,我们这个时候为了简化问题,取出现次数最多的一种情感作为特征。

    此外,我们还需要一个时间戳作为特征,直接选取当时发推的时间即可。

    将类似这样的特征放入到我们上一次的训练集的每一条的最后进行训练:

    4 1467129600.0

    训练100次,其实从损失和准确率曲线上看,还有继续训练的空间,但是为了和上一次形成对比,我们就训练100次吧:

    训练过程

    model lost

    增加特朗普因子之后的测试结果如下:

    增加因子

    增加特朗普因子之前的测试结果如下:

    阅读更多...

    [准确率:68%]基于日指标使用LSTM预测股价是否上涨(完善版)


    in 干货 , 机器学习 , 神经网络及深度学习 2019-05-15

    最近因为(财务自由需要)个人项目需要,在研究一些股票预测的算法,试过PEG的估值,也试过其他一些估值方法,但是效果都不是很好,今天我们来试一下用LSTM进行上涨预测。请注意,这只是一次具有学习性质的尝试,我也不会用这个模型进行实质性的操作。(以下的“天”指交易日)

    如何提取上涨特征?

    单纯使用开盘价、收盘价的上涨特征是毫无意义的,因为这样的特征不明显,和赌博没有区别。研究历史日线数据时,我们应该让模型学习到某一天之后的x天上涨y%的原因,这样才能使用当前交易日的数据预测未来x天是否会上涨。

    然而这个原因是比较复杂的,当前行情、财务报告、市场情绪等各方面都对其有影响。在我们这次实验中,我们使用下方两个表格的指标进行训练,除了股票代码编号和该交易日日期,其余全部参与训练。为了简化问题,我们将是否上涨视为二分类问题。

    选取标准:若自当前交易日起未来十天内,该股票平均上涨大于4%,则将当日以下指标数据(合并为一条,以空格区分开)纳入上涨训练集。否则纳入不上涨训练集。

    每日行情:

    • open 开盘价
    • high 最高价
    • low 最低价
    • close 收盘价
    • pre_close 昨收价
    • pre2_close 2天前收盘价
    • pre3_close 3天前收盘价
    • pre4_close 4天前收盘价
    • pre5_close 5天前收盘价
    • change 涨跌额
    • pct_c...

    阅读更多...

    反编译小程序指南手册


    in 干货 , 技术原理 , 计算机安全 2019-03-18

    最近经常需要接触到小程序的相关知识,前段时间正好有时间进行了一次反编译小程序的尝试,效果还不错,可以获得我想要的所有小程序的源代码,写成手册以供大家交流学习。

    1. 准备环境

    开始之前,我们需要一个能够root的安卓环境,其实任意一款手机模拟器都可以,我这里使用的是网易MUMU. 在网易MUMU上安装微信并登陆使用你想要反编译的小程序。只要其出现在你的小程序列表中即可(比如这款封面下载助手)

    1.png

    然后进入MUMU自带的应用商城,下载RE文件管理器,打开后会让你给予它超级权限,选择一直允许即可。在其他浏览器上可能操作不一样,你也许需要先进入设置—超级权限,自动相应设为允许即可。

    2. 提取wxapkg包

    使用RE文件管理器打开文件夹:

    /data/data/com.tencent.mm/MicroMsg/{一串16进制}/appbrand/pkg

    你会看到许多wxapkg包,这些便是小程序的源代码文件。我们将其下载下来(下载方法可以自己选择,你可以使用共享文件夹,也可以使用发送到微信文件助手的方式)。

    2.png

    放到本地电脑上,准备下一步。

    3.安装Node及我们需要的工具

    下面我们需要对包进行反编译,需要的工具有:

    Node

    wxappUnpacker

    Node 安装方法见下面这个教程:

    http://www.runoob.com/nodejs/nodejs-install-setup.ht...

    阅读更多...

    能自动通知、同步微博的失物招领系统开源啦!


    in php , 干货 , 程序语言 2018-12-07

    项目源代码及详细的使用说明如下,喜欢请给个star:

    https://github.com/Ckend/LostAndFound

    这是之前为校学生会和网络协会制作的一个失物招领系统,主要功能如下:

    laf1

    失物招领流程如下:

    laf2

    由于是大二时的作品,设计有点稚嫩,数据库中表的构建略为冗杂,你可以进行改进;前端打包生成的app.js约1.3M, 可以进一步优化。此外,因为是和校学生会合作的项目,因此是线上线下结合的,你也可以稍作修改,编成纯线上作品。

    失物招领web端

    这一部分包括系统展示页和后台管理页、企业号自动通知和微博同步功能。

    系统展示页

    系统展示页包括学校名称、各学院名称、失物简介、证件类与非证件类的查看、搜索框、失物详情。如下图所示

    laf3

    后台管理页

    包括超级系统管理页面、分校区管理页面。其中超级系统管理页面需要设定学校名称,及各校区基本情况。以及配置微博信息和企业号信息。如下图所示。

    laf4

    分校区后台管理页面包括失物基本信息上传和修改,设置已领取、已领取人的信息等功能,如下图所示。

    laf5

    laf6

    企业号自动通知与微博同步功能

    为确保同学们能及时收到失物信息,我们设计了卡类失物微信自动通知功能和非卡类失物微博同步功能,如下图所示。

    laf7

    laf8

    失物招领小程序端

    从同学们的调查问卷结果中我们可以知道,90%的同学通过微信来获取信息,因此抓住手机端的优势非常重要,所以我们开发了小程序端来相应同学们的需求。

    阅读更多...

    [准确率:98%] 改进朴素贝叶斯自动分类食品安全新闻


    in Python , 机器学习 , 神经网络及深度学习 , 程序语言 , 算法 2018-11-29

    这是本系列第二篇文章,位于源代码的 2. NB_Weights 中:

    https://github.com/Ckend/NLP_DeepLearning_CN_Tutorial

    前一篇文章中,我们学习了如何使用朴素贝叶斯自动分类食品安全新闻,准确率为97%,这一篇文章将教大家如何改进这个模型。阅读本篇文章之前,建议先阅读前一篇文章:[准确率:97%] 朴素贝叶斯自动分类食品安全新闻,否则有些概念可能无法理解。

    在那篇文章中,在训练的时候,朴素贝叶斯模型中所有词语都是相同的权重,而事实上真的如此吗?我们怎么样才可以知道哪些词语更加重要呢?这时候,数理统计就派上用场了。

    我们先对所有的食品安全新闻和非食品安全新闻使用结巴(jieba)分词, 然后统计各个词性在这分别在这两个类别中的数量,比如说名词的结果如下表(使用SPSS得到,其他词性就不一一展示了),显然食品安全新闻中名词的数量多于非食品安全新闻,这也是在人意料之中的结果,但是这并不代表着对于食品安全新闻,名词的重要性就大于其他的词性:

    改进朴素贝叶斯-1

    那么如何确定各个词性对分类的重要性呢?单纯根据频率和频数确定是比较复杂的,我们可以尝试使用我们的模型,比如说,先得到一个基准的准确值,然后尝试去除掉名词得到一个准确值,观察这两个准确值的差距,如果非常大,说明名词具有比较重要的地位。我们可以试一下:

    在所有词性权重都为1的情况下(基准)进行训练

    阅读更多...

    爬取淘宝某关键词的所有商品及其信息


    in Python , 爬虫 , 程序语言 2018-11-24

    源代码:https://github.com/Ckend/taobao_scrapy

    语言:Python3

    爬取平台:手机端

    PS:在当前文件夹下先创建好result文件夹

    源代码包含两个Python文件,get_items.py 用于通过关键词获得商品基本信息,包括商品名称、店铺、销量、评论数、图片、优惠、出货地、原价等等。输出格式为.csv文件。

    另一个Python文件: get_review_cloud.py 用于通过userID和itemID (从get_items.py中获得这两个信息) 获得某商品的评论云。输出.csv文件。

    源代码很简单,十几行,逻辑如下:

    1. 访问接口(f=urllib.request.urlopen(url))

    2. 读取源代码并解码为utf-8然后转化为json

    3. 写入至.csv文件。

    以下给出get_items.py的内容,其他的请见GitHub,如果你有收获,请帮忙点个Star~

    get_items.py:

    
    import urllib.request
    
    import urllib.parse
    
    import json
    
    import csv
    
    def write_csv(data, filename):
    
        count = 0
    
        with open(filename, 'a') as outf:
    
            dw...

    阅读更多...

    [准确率:97%] 朴素贝叶斯自动分类食品安全新闻


    in Python , 机器学习 , 算法 2018-11-08

    教程源代码点击阅读原文或访问:

    https://github.com/Ckend/NLP_DeepLearning_CN_Tutorial

    利用朴素贝叶斯来分类食品安全新闻(标题)这种短文本其实精确度并不高,在实际的生产中,由于食品安全和非食品安全的数量差异,我们会发现1000条新闻中可能才出现2条食品安全新闻,也就是说,即便你的模型准确率为95%,1000条新闻中依然会有许多新闻 (50条) 会被错分类,这是一个非常糟糕的结果。因此在生产环境中,如果模型准确率不能高达99%,甚至都无法使用。在我们的研究下,使用朴素贝叶斯,我们的准确率能提高到97%,使用改进的朴素贝叶斯准确率能达到98%以上,使用字符级的卷积神经网络甚至能达到99%,后续的教程我会介绍这两种方法。

    为了后续的教程,我们还是先利用最简单的朴素贝叶斯来理解“训练”这个概念。为了尽量简化教程的难度,我尽量不使用数学公式进行讲解,更多的以自然语言和Python代码进行分析。在这个教程中,你所需要的东西有:

    python 3

    jieba 分词

    numpy

    sklearn (用joiblib保存模型)

    训练

    朴素贝叶斯的训练,其实就是遍历整个训练集,算出每个词语在不同的分类下出现的概率(该词语/该分类总词数)。最后得到两个向量,这两个向量分别代表了每个词语在食品安全新闻和非食品安全新闻中出现的概率。

    for i in r...

    阅读更多...

    语音控制 - 改造普通台灯


    in 技术原理 , 教程—智能化普通家居 , 神经网络及深度学习 2018-09-21

    教你如何利用智能音箱搭配树莓派,将普通台灯改造成可以用语音控制的智能设备!

    阅读更多...