示例脚本
Wordbatch
机器学习中的并行文本特征提取。
Wordbatch从原始文本数据中提取并行特征提取,例如深度学习和文本分析。 对于更基本的非并行提取,Wordbatch中最基本的用法是scikit学习。TfLearn和 Keras 。 此外,Wordbatch还提供可以定制的预处理和特征提取器,以提高预测性能。
在这些工具包中处理文本或者作为流的文本预处理不同,Wordbatch最适合于大型的文本数据处理。 Wordbatch内部存储数据的每批统计数据,并应用这些数据用于字典选择。拼写更正和在线IDF权重等用途。 批量越大,Wordbatch在提取特征方面的选择就越好。
当前的文本预处理选项包括将任何函数作为文本规范化传递,并对Norvig拼写更正进行常数时间调整,并传递任何函数以进行平行处理。
目前提供了四个基本特征提取器类:
• WordHash只是使用Wordbatch并行化封装的scikit学习 HashingVectorizer,
提供了乘法处理速度
• WordBag是Wordhash的灵活替代,提供了scikit的cababilities缺失,例如
rpc和每n 克加权,窗口和距离加权多项式交互。
• WordSeq提供了单词整数序列,由深入学习工具包用于LSTM模型的输入。
• WordVec提供从单词到wordvectors的嵌入转换
可以定义提取器列表。 例如,单词向量序列可以以投影到每个文档向量中,并与它的他单词矢量嵌入的向量连接。
提供了四个基本的openmp并行 l1& L2-regularized在线学习模型,用于单一标签回归和分类:
• FTRL: 线性模型近端 FTRL,它已经成为 Kaggle competions中线性模型在线学习
最流行的算法。 cython优化的实现应该是最快可用的FTRL版本。
• FM_FTRL: 分解机器。带FTRL和因子效应估计的线性效应估计。 跨多个因素预测
和估计多线程。
• NN_Relu_H1: 具有 1隐层和校正线性单元激活的神经网络,采用自适应SGD估
计。 通过隐藏层预测和估计多线程。
• NN_Relu_H2: 具有 2隐层和校正线性单元激活的神经网络,估计为 adaptive 。
在 2nd 隐藏层之间预测多线程,估计 1st 隐藏层输出的估计。
优化器与Adagrad类似,但是使用相同的特性在隐藏节点之间缓存自适应学习速率。 这使得学习更加健壮,并且需要较少的内存。
Wordbatch用Cython编写,使用并发线程。多处理和OpenMP并行化来规避 python GIL 。 许可以证是 GNU GPL 2.0,并且在请求时可以以使用更少限制的许可以证。
要求
linux/Windows 。python 2.7/3. 6
安装
pip安装 wordbatch
正在启动
#from sklearn.feature_extraction.text 导入 HashingVectorizer #from sklearn.linear_model 导入 * #vct= HashingVectorizer() #clf= SGDRegressor ( )
) wordbatch ** 25 D=2 import import import import import 。
train_texts= [\"herring树 cut? 不可能。\",\"不说这个词。如果你不告诉我们它是什么,我们怎么说等待? ! 我说了我说了 ! 哦我又说了\"] !
clf.fit(wb.transform(train_texts), clf.predict(wb.transform(test_texts))
train_labels ) preds=
示例脚本
目录/scripts/包含四个演示基本抽取器的脚本,一个scikit学习集成模型来组合预测。 要运行脚本,首先应该安装依赖项: Keras,NLTK,TextBlob和 Pandas 。 这些脚本还使用TripAdvisor数据集( http://times.cs.uiuc.edu/~wang296/Data/ ) 进行训
练模型,以及预计算单词嵌入 glove.twitter.27B.100d 和 glove.6B.50d ( http://nlp.stanford.edu/projects/glove/ ) 。 /data 目录中提供了Crowdflower打开数据 & Kaggle的测试数据。
• wordhash_regressor.py 显示 wordbatch 。提取器。wordhash和与文件读取并
发的特征提取
• wordbag_regressor.py 显示 wordbatch 。提取器。wordbag和在线特性提取和
并行FTRL培训
• wordseq_regressor.py 显示 wordbatch 。extractors 。wordseq,并训练 1个
convnet回归模型
• wordvec_regressor.py 显示 wordbatch 。wordvec ,并将单词向量嵌入用于
FTRL训练
• classify_airline_sentiment.py 展示了如何使用随机森林回归器在航空公司情绪数
据中组合来自四个脚本的预测
集成
从 1.2开始,Wordbatch拥有完整的Spark集成。 通过设置 wb,只需设置 wb,并通过生成的RDD格式提供数据,所有处理步骤都将并行化。
使用这个脚本的基本脚本是 wordbag_regressor_spark.py,,它是修改后运行在Spark上的wordbag_regressor.py 脚本。 这将每个培训数据的minibatch转换为一个
iframe,并对该特性提取,并收集本地FTRL模型培训的结果。 更实用的脚本应该从并行存储中读取数据,并在RDD上实现模型训练。
并行预测在 wordbag_regressor_spark.py. 中通过调用 predict_parallel ( ) 来实现并行预测,具体取决于是否为类设置了 been 。
贡献者
Antti tsung tsung
因篇幅问题不能全部显示,请点此查看更多更全内容