幻象客 - 博客

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


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

    项目源代码及详细的使用说明如下,喜欢请给个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-07

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

    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

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

    阅读更多...

    语音控制 - 改造普通风扇


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

    利用智能音箱和树莓派,加一个三极管,改造普通风扇,使其可以被语音控制!

    阅读更多...

    利用智能音箱语音控制电脑开关机


    in 干货 , 技术原理 , 教程—智能化普通家居 2018-07-20

    完成下面这个有趣的实验,你所需要的东西有:

    1.路由器(能够形成局域网,且电脑已用网线连接)

    2.一个智能音箱(本教程使用的是亚马逊 Echo Dot 2)

    3.主板支持wake on lan (大部分都支持)

    4.一个树莓派

    原理流程图如下:

    利用智能音箱语音控制电脑开关机

    接下里将按照这个流程图进行讲解,首先是智能音箱和树莓派的连接,我们需要让树莓派发出信号,让智能音箱将其认作是智能家居并连接。由于我使用的是亚马逊的智能音箱,因此我选择了Fauxmo(https://github.com/n8henrie/fauxmo)进行模拟

    1.在树莓派上安装Fauxmo

    Fauxmo的安装方法见下方的操作或网址,注意这里的Python需要3.6以上:

    Install for development from GitHub

    1.git clone https://github.com/n8henrie/fauxmo.git

    2.cd fauxmo

    3.python3 -m venv .venv

    4.source ./.venv/bin/activate

    5.pip install -e .[dev]

    6.cp config-sample.json config.json

    7.根据需求编辑(第一次可先忽略) config.json

    8.fauxmo [-v]

    成功后,请让智能音箱重新搜索设备,如Echo dot...

    阅读更多...

    或许人生做的第一个决定是最重要的


    in 闲谈 2018-07-20

    人生做的第一个决定,也许直接影响了人生接下来的选择,所以不要再说人生重来一遍了,即便是人生重来一遍,你也会做出同样的选择,而这些选择都是第一个决定所导致的。

    我们依据什么作出人生的第一个决定?基因+环境。这两点都是无法轻易改变的。因此,人的一生的轨迹基本在这个时刻就决定了。在以后的决定中,你都会被之前的经历和经验影响,而做出你认为最合适的决定。如果现在能够利用计算机根据你的思维进行模拟,也许你会发现,模拟得到的决定基本都一样。

    你可能会觉得,通过学习可以改变我们的认知,从而做出不一样的决定。但是你会学什么、学的程度如何,都是根据你先前的决定得到的,也就是说,你不会做出不一样的决定,因为你先前的经历和经验就决定了你未来的走向。

    说到这里,就不得不提格式塔学派的学习理论,他们认为,学习不是一种盲目的尝试,而是由于对情境顿悟而获得成功。而之所以产生顿悟,主要是由于大脑能利用过去的经验,具有组织力的作用,能够填补缺口或缺陷。

    所以过去成就了现在的你,但是未来的你还是会被过去限制,会因为过去的经历和经验做出决定,这是无法避免的。因此人生轨迹已经大致被限定了,即便是受到自然因素的影响,其偏差也不会太大。

    所以,通过计算机预估一个人的人生轨迹是可能的。

    幻象客 二维码

    阅读更多...

    利用股市找到已有或潜在食品安全问题的上市企业


    in Python , 程序语言 , 算法 , 闲谈 2018-05-26

    当某个股票保持下跌的时候,你可以肯定该股票一定有什么地方不对,要么是它的市场,要么是它的公司。——利弗莫尔

    最近食品安全项目成功升到国家级,对我而言真的是个挑战,无论是朴素贝叶斯分类新闻还是数据分析其实都到了瓶颈阶段(即便过了瓶颈还有瓶盖),真的是绞尽脑汁都不知道问题出现在哪里。因此想换一个思路,结合自己最近的研究,提出了这个比较新颖的想法:利用股票市场找到已有或潜在食品安全问题的企业。

    为什么会有这个想法呢?我们知道食品安全事故发生的时间点和媒体报道的时间点之间实际上是有一个间隔的,然而相关利益人士、内部人士却能提前知道事件的发生。比如说,2012年11月19日,酒鬼酒被国家质检总局爆出塑化剂超标247%,但是在19号之前,酒鬼酒的收盘价却神奇地从2012年11月2日的55元回落到2012年11月16号的46元。然而国家质检总局的消息是在2012年11月19号才发布的。而且这样的下跌,明显违背该股票当时上涨的趋势,在10月底时,它的股价已突破周K的压力线,却很不自然地下跌了?而且还违背了许多技术指标,如1号、14号、16号,KDJ和BOLL指标明显提示上涨,在股市这种情绪化的市场中,有人却不为所动,仍然售出大量股票导致其不正常下跌。

    股市 食品安全

    2012年11月19号消息公布时紧急停牌,复牌后有三个跌停,股价暴跌48%,但我相信某些人已经成功躲开了这场股灾。

    找到已有或潜在食品安全问题

    阅读更多...

    做了一个自动分享到微博的插件


    in php , 干货 , 技术原理 , 程序语言 2018-02-25

    网站的宣传是一个特别令人头痛的问题,为了增加流量,进军微博是个好方法。昨天花了一天的时间做了个WordPress文章发布时自动分享到微博的插件。支持自定义模板和图片。

    阅读更多...