CuliBRI核心是一个NLP工具,以及一个C++和Python库(包括在这个包中),用于处理基本的语言结构,例如N-gram和SkIPgram(即具有一个或多个间隙的模式,无论是固定的还是动态大小的),以快速和内存高效的方式。核心是工具“colibri patternmodeler”,它允许您构建、查看、操作和查询模式模型。
colibricore的Python项目详细描述
作者:Maarten van Gompel,proycon@anaproy.nl,雷德布大学尼梅根分校
在gplv3下获得许可(见http://www.gnu.org/licenses/gpl-3.0.html)
colibri core是一个快速有效地计算和提取模式的软件。 从大量的语料库数据中,提取出各种统计数据 模式,并计算所提取的模式之间的关系。受雇者 模式或结构的概念包括以下类别:
- n-gram–n连续单词
- skipgram–具有一个或多个间隙(特定大小)的预定长度的抽象模式。
- flexgram–一个具有一个或多个可变大小间隙的抽象模式。
N-gram提取一开始可能看起来相当简单,在 最喜欢的脚本语言,您可以移动大小为n的简单滑动窗口 在你的语料库上,并将结果存储在某种hashmap中。这件小事 然而,这种方法对内存资源的需求太高,这是不必要的 如果放在大型的下士身上,往往会变得令人望而却步。科里布里·科尔试图 通过以下几种方式将这些空间需求降至最低:
- compressed binary representation–为每个字类型分配一个数字类,该数字类以紧凑的二进制格式编码,其中高频率类占用的空间比低频率类少。colibri core总是在磁盘和内存中使用这个表示,而不是完整的字符串表示。
- 通知迭代计数–通过多次迭代处理语料库并快速丢弃无法达到所需出现阈值的模式,可以更智能地执行计数。
skipgram和flexgram的提取在计算上要求更高,但是 已经实施了类似的优化。skipgrams由 抽象超过n个图形,而屈折图形依次由 在技巧图上提取,或根据 共现信息(互点信息)。
软件的核心是模式模型的概念。核心工具 从命令行使用,是colibri-patternmodeller,它使您能够 要构建模式模型,请生成统计报告,查询 模式和关系,以及操纵模型。
模式模型只是提取的模式的集合(三种模式中的任何一种 类别)以及它们在特定语料库中的计数。模式有两种 品种:
- unindexed pattern model–最简单的形式,它只存储模式及其计数。
- indexed pattern model——一种更为明智的形式,它保留了原始语料库的所有索引,但代价是占用了更多的内存/磁盘空间。
索引模式模型更强大,允许更多的统计信息和 要推断的关系。
模式模型的生成可选地由最小值参数化 发生阈值、最大模式长度和下边界 可以实例化skipgram的不同类型(即 差距)。
技术细节
colibri core是独立命令行工具的集合, 作为^ {STR 1 } $c++库< /强>,并且作为^ {STR 1 } $ Python库。
请查阅https://proycon.github.io/colibri-core上的完整文档
安装说明如下:https://proycon.github.io/colibri-core/doc/#installation
出版物
本软件在以下同行评议的出版物中有详细介绍:
van Gompel, M and van den Bosch, A (2016) Efficient n-gram, Skipgram and Flexgram Modelling with Colibri Core. Journal of Open Research Software 4: e30, DOI: http://dx.doi.org/10.5334/jors.105
点击链接访问该出版物,如果您使用 科里布里是你工作的核心。