gxtrobot / bustag
- среда, 18 сентября 2019 г. в 00:21:18
JavaScript
a tag and recommend system for old bus driver
Bustag 是一个基于 python 异步爬虫框架开发aspider的自动车牌推荐系统, 系统原理为定时爬取最新车牌信息, 然后可以对车牌进行打标(标示是否喜欢), 打标车牌到一定数量可以进行训练并生成模型, 以后就可以基于此模型自动对下载的车牌进行预测是否喜欢, 可以过滤掉大量不喜欢的车牌, 节约时间
链接: https://pan.baidu.com/s/1pqarq7fOXjsbad0WN4Uaaw 提取码: budu
压缩包密码: gxtrobot
新录了个视频, 演示了如何使用docker运行项目
下载zip包后解压缩到任意目录, 然后在目录下的data目录里, 创建文件config.ini - windows 版: 执行(双击)bustag.exe - mac 版: 执行(双击)bustag - 浏览器访问: localhost:8000, 访问成功说明运行正常, 如果访问不成功, 可以看bustag程序窗口有无报错
懂 python 开发的可以 clone 本项目, 建立一个虚拟环境并按照 requirements.txt 的 python 包后, 在项目根目录下 直接运行
python bustag/app/index.py
或者安装了gunicorn
gunicorn bustag.app.index:app --bind='0.0.0.0:8000'
linux, mac
docker run --rm -d -v $(pwd)/data:/app/data -p 8000:8000 gxtrobot/bustag-app
windows powershell
docker run --rm -d -v ${PWD}/data:/app/data -p 8000:8000 gxtrobot/bustag-app
|____bus.db
|____config.ini
|____crontab.txt
|____model
| |____ label_binarizer.pkl
| |____model.pkl
config.ini, (系统配置文件, 必须, 系统启动时候需要此文件, 参考文件)
bus.db (数据库文件, 可选, 但是可以放一个现成的库, 有 2000 条数据, 方便直接开始打标, 不需要等下载)
crontab.txt (定时下载配置文件, 可选, 参考例子)
model 目录(系统训练生成的模型)
*/30 * * * * /app/docker/run_download.sh >> /var/log/bustag.log 2>&1
改变下载初始 url 因为该 url 会经常改变, 所有系统的 config.ini -> download -> root_path 定义了初始 url, 可以根据需要改变
是否可以使用代理 目前系统还没加入代理功能, 不过可以在 docker 设置代理访问
下载数量多少合适 鉴于爬虫的稳定性, 不建议每次下载太多, 也可能会给 bus 服务器带来压力, 如果需要, 初次使用可以加大到 1000, 这样可以下载多点初始数据用于打标, 后面可以改为 300
模型效果如何 经过一些测试, 最终使用了 KNN 模型, 效果的话谈不上非常好, 在准确率上还可以, 不过召回率相对低一些, 也就是说推荐的准确率相对高点, 但是会漏掉一些喜欢的数据. 所以, 鉴于定期对推荐数据进行确认, 经过确认后, 推荐数据转为打标数据, 然后重新训练,打标数据越多效果越好
要多少打标数据才能训练模型 建议至少达到 300 打标数据(包括喜欢, 不喜欢), 如何尝试训练模型, 并查看模型效果值, 如不满意可以增加训练数据并重新训练
模型用了什么数据训练 模型目前主要使用了各种标签数据, 比如影片分类, 女优名等等, 目前没有使用到标题
如何改变服务器运行端口 服务器默认为 8000 端口, 如果需要改变, 可以修改启动 docker 容器命令, 比如 8000
修改为8000端口, 注意:后面的8000不要变, 然后可以通过localhost:8000访问
docker run --rm -d -v $(pwd)/data:/app/data -p 8000:8000 gxtrobot/bustag-app