基于机器学习和客户机-服务器结构的文本分类引擎
opentc的Python项目详细描述
opentc是一个使用机器学习的文本分类引擎。它是 设计为客户机-服务器体系结构并使用python库 机器学习算法的scikit学习和tensorflow。 目前支持以下算法:
- 天真的贝耶斯
- 支持向量机
- 卷积神经网络
未来它还将支持FaceBookResearch的FastText。
引擎作为服务器运行,监听 分类的。默认情况下,它监听本地主机端口3333,但它可以 在yaml配置文件中更改。
opentc可以用于文本分类(一个演示网站 为此目的,可在线获得OpenTC demo),或用于其他目的,如 作为数据泄漏预防(DLP)。dlp的实现示例 已创建为icap服务器: opentc-icap
要求
- python 3.x
- 努比
- 解析
- 皮亚姆
- SCIKIT学习
- scipy
- Tensorflow 1.x
如何使用
安装
使用pip安装模块:
$ pip install opentc
或者克隆存储库
$ git clone https://github.com/cahya-wirawan/opentc.git $ cd opentc $ python setup.py install
opentc
概要
opentc
说明
基于数据集定义的训练应用程序的命令行 在配置文件中。培训结果(预培训数据) 可用于OpenTCD服务器。
用法
$ python opentc -h usage: opentc [-h] [-c CLASSIFIER] [-C CONFIGURATION_FILE] [-d DATASET] [-l LOG_CONFIGURATION_FILE] optional arguments: -h, --help show this help message and exit -c CLASSIFIER, --classifier CLASSIFIER set classifier to use for the training (support currently bayesian, svm or cnn) -C CONFIGURATION_FILE, --configuration_file CONFIGURATION_FILE set the configuration file -d DATASET, --dataset DATASET set dataset to use for the training -l LOG_CONFIGURATION_FILE, --log_configuration_file LOG_CONFIGURATION_FILE set the log configuration file
打开tcd
概要
打开TCD
说明
守护进程侦听TCP端口上的传入连接(默认为 3333)并根据需要对文件或文本字符串进行分类。上面写着 配置文件的顺序如下:./opentc.yml, ~/.opentc/opentc.yml或/etc/opentc/opentc.yml。
用法
opentcd使用配置文件opentc.yml来定义所有 可能的配置。在命令行中只能覆盖少数设置 选项。
参数列表:
$ python opentcd -h usage: opentcd [-h] [-a ADDRESS] [-C CONFIGURATION_FILE] [-l LOG_CONFIGURATION_FILE] [-p PORT] [-t TIMEOUT] optional arguments: -h, --help show this help message and exit -a ADDRESS, --address ADDRESS define the address for the server -C CONFIGURATION_FILE, --configuration_file CONFIGURATION_FILE set the configuration file -l LOG_CONFIGURATION_FILE, --log_configuration_file LOG_CONFIGURATION_FILE set the log configuration file -p PORT, --port PORT define the port number which the server uses to listen -t TIMEOUT, --timeout TIMEOUT define the time out
作为后台应用程序运行:
$ python opentcd& 2017-05-02 13:33:22,276 - opentc.core.classifier.cnn_text - DEBUG - Load the checkpoint: data/input/cnn_twenty_newsgroup_20170301_090000-all/checkpoints/model-2210 INFO:tensorflow:Restoring parameters from data/input/cnn_twenty_newsgroup_20170301_090000-all/checkpoints/model-2210 2017-05-02 13:33:23,899 - tensorflow - INFO - Restoring parameters from data/input/cnn_twenty_newsgroup_20170301_090000-all/checkpoints/model-2210 2017-05-02 13:33:27,375 - __main__ - INFO - Server start 2017-05-02 13:33:28,019 - opentc.core.server - INFO - Server loop running in thread: Thread-1
数据集和预训练数据
配置文件定义数据集的路径并预先训练 数据。用于测试的预先培训数据可从 data,大约是1.4gb。只是 解压并在opentc.yml中更改预训练数据的路径 相应地归档。
命令
该命令使用换行符作为分隔符。如果打开TCD 无法识别该命令,或者该命令不遵循 下面指定的要求,它将以错误消息答复,但是 仍然等待下一个命令(此行为可以在 未来)。
平
检查服务器的状态。它应该用“pong”来回答。
版本
打印程序版本
重新加载
重新加载发动机
列表分类器
列出支持的分类器(目前有三个 支持的分类器:贝叶斯、支持向量机和 卷积神经网络)。它还显示了分类器的状态, true(已启用)或false(已禁用)。
设置分类器
启用或禁用特定分类器
预测流量
对文本流进行分类。它使用新行字符作为 每句话。
预测文件
分类文件。它使用一个新行字符作为 句子
关闭
关闭连接
待办事项
- 多标签分类
- 包括FaceBookReseat中的FastTextrch
- 将使用pyzmq和google的protobuf来改进协议和 网络通信