4月1日 HanLP.com进行版本迭新,本次迭新内容包含了详情页内容补充、首期HanLP实习日记视频、全新的点数计费系统,以及2.1版本的正式上线。 深刻理解多元业务场景的个性需求,汇聚数十万众客力量,集成了数据标注+平台训练+在线接口调用智能化的一站式解决方案。寸积铢累,化繁为简,尝试用自然语义去理解世界。
在技术上,HanLP2.x是1.x的深度学习进化版。继承了旧版本的愿景和格调,并采用了新的理论与设计。1.x在理论上主要采用类似HMM、感知机、SVM和CRF之类的线性模型,配合大量的人工特征工程以及规则将语言转换为稀疏的二进制向量,表达能力较弱。而2.x则采用了深度学习技术自动学习人类语言的向量表达,表达能力很强。在设计上,1.x偏向于以具体业务为中心,少了许多必要的抽象;而2.x则以机器学习模型的生命周期为设计蓝本,抽象出了比较通用的框架,更加适合专业NLP工程师和研究者。
在功能上,HanLP2.1支持包括简繁中英日俄法德在内的104种语言上的10种联合任务:
-
分词
a) 粗分、细分2个标准。可以将一个句子拆分为不同颗粒度的单词列表。
b) 强制、合并、校正3种词典模式。可以提供3种不同优先级的规则校正分词结果。 -
词性标注
a) PKU、863、CTB、UD四套词性规范。PKU最常见,863比PKU简单一些,CTB比PKU专业一些,UD是多语种词性规范。 -
命名实体识别(PKU、MSRA、OntoNotes三套规范)
a) PKU仅支持人名地名机构名,MSRA还支持时间日期年龄等,OntoNotes还支持艺术作品、事件名称等。 -
依存句法分析(SD、UD规范)
a) SD是斯坦福中文依存体系,UD是多语种依存体系。 -
成分句法分析
a) 也称为短语句法分析,可以递归地将句子分解为嵌套的短语。 -
语义依存分析(SemEval16、DM、PAS、PSD四套规范)
a) 跳过语法直接分析句子的语义结构,并将其表示为图的形式。 -
语义角色标注
a) 标注句子的谓词(谓语)和谓词对应的论元(时间地点人物),并将其表示为不相交的区间。 -
词干提取
a) 提取单词的词干 -
词法语法特征提取
a) 提取单词的词形等特征 -
抽象意义表示(AMR)
a) 将一个或多个句子的意义表示为一个有向图,图中的节点为概念而不是句子中的单词,所以表达得更灵活。英文世界采用了AMR表达语义,中文世界暂时还停留在语义依存图上
在设计上,HanLP抽象出了“组件”的概念来模拟机器学习模型的生命周期。组件指的是执行一项业务所需要的算法和数据。在2.x的深度学习技术中,组件指的就是深度学习模型和相应的“变换”。变换的概念就是一个函数,将一个样本变换为另一个形式。比如,词表就是一个将单词变换为ID的变换。
组件的生命周期有:
1. 训练(fit)。即给定训练集和超参数,训练模型和相应的变换。
2. 评估(evaluate)。即评估模型在测试集上的准确率。
3. 保存(save)。将模型和变换保存到磁盘。
4. 加载(load)。从磁盘加载模型和变换。
5. 预测(predict)。给定新样本,执行的预测。
虽然部署(serve)也是生命周期的一部分,但部署其实就是预测加上一些服务器逻辑,
因此不单独列出。
可见,要获得一个可用的组件,要么调用fit,要么调用load。HanLP2.x提供了许多预训练的组件,可以直接利用hanlp.load来加载(少数第三方词向量不能直接hanlp.load)。
特别地,HanLP2.1实现了强大的联合学习框架,可以复用同一个Transformer联合训练多个解码器,每个解码器对应一项功能,最终达到一个组件提供多项功能的目的。