自然语言处理函数库spaCy 2.2发布,加入数据增强系统、提升​​字词配对速度

人工智能与自然语言处理工具开发厂商Explosion,发布了自然语言处理函数库spaCy 2.2,新版本设计更精简干净易于开发使用,并且为训练、评估和串行化都加入新的模型组件与功能,改善调试和错误处理,也大幅度地降低磁盘占用容量。

spaCy是一个Python的高端自然语言处理函数库,不只采用最新的人工智能研究,也讲求可用来开发产品的实际可用性,spaCy内置预训练的统计模型和单词向量,以及支持超过50种语言的标记化(Tokenization),还含有可应用在标记、解析和命名实体(Entity)识别的卷积神经网络,并可与深度学习技术集成。spaCy是一个商业开源软件以MIT授权发布。

在新版中,增加了新模型以及数据增强(Data Augmentation)系统。spaCy 2.2内置重新训练的统计模型,不只修正错误,也改进对小写字母的处理性能,官方提到,跟其他统计模型遇到的问题一样,spaCy的模型也会对训练数据以及用户数据产生敏感差异,而目前他们遇到的情形是大小写与形式的问题。

由于用于训练的数据都是经过良好编辑的文本,因此在遇到大小写与标点不一致的文本,则会出现正确率下降的问题,为此官方开发了新的数据增强系统,并在spaCy 2.2这个版本添加新的单词替换系统,让开发者可于训练模型的过程,在每一遍训练数据集的句子随机子集抽换字词,以解决数据所产生敏感差异。

官方也更新了CLI工具,以改进训练和数据开发流程的各种可用性,特别是在文本分类。新版CLI除了改善错误消息、更新文件,同时也让评估指标更详细,像是在默认情况下,评估现在按实体类型以及文本类别提供精确的统计。新加入的debug-data命令,可以用来验证训练和开发数据,以获得有用的统计数据,或发现无效的实体注释、循环相依项目和低数据的标签,官方提到,与其开始训练一段时间后才发现错误,不如先在训练前检查数据,可以更节省时间。

由于spaCy支持越来越多语言,因此磁盘占用的容量也越来越多,特别是加入可查询的词形还原表格,这个表格存储成Python文件,并在部分情况会变得非常庞大,现在官方把查询表转换成gzip JSON格式,并移到独立的组件中,只在需要的时候安装,根据系统的不同,spaCy安装缩小5到10倍。

spaCy 2.2新的DocBin类别可以更加有效率的串行化Doc集合,更快地把一组Doc对象串行化或是反串行化,并自动处理许多细节,在开发者搭配多重处理函数库Dask使用时会特别方便。spaCy以前用于字词配对的的PhraseMatcher算法,可以轻松扩展到大型查询集,但这个算法在较少的查询时,表现反而不一定很快,而这造成不主动的性能特征,spaCy 2.2使用了新的trie算法,这个算法是基于标记而非字词,因此配对速度很快,少量查询速度快20倍,即使处理一万个查询速度也快上5倍。