CuliBRI核心是一个NLP工具,以及一个C++和Python库(包括在这个包中),用于处理基本的语言结构,例如N-gram和SkIPgram(即具有一个或多个间隙的模式,无论是固定的还是动态大小的),以快速和内存高效的方式。核心是工具“colibri patternmodeler”,它允许您构建、查看、操作和查询模式模型。

colibricore的Python项目详细描述


https://travis-ci.org/proycon/colibri-core.svg?branch=masterhttps://badge.fury.io/py/colibricore.svghttps://zenodo.org/badge/doi/10.5281/zenodo.55641.svghttp://applejack.science.ru.nl/lamabadge.php/colibri-core

作者:Maarten van Gompel,proycon@anaproy.nl,雷德布大学尼梅根分校

在gplv3下获得许可(见http://www.gnu.org/licenses/gpl-3.0.html)

colibri core是一个快速有效地计算和提取模式的软件。 从大量的语料库数据中,提取出各种统计数据 模式,并计算所提取的模式之间的关系。受雇者 模式或结构的概念包括以下类别:

  • n-gramn连续单词
  • 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

点击链接访问该出版物,如果您使用 科里布里是你工作的核心。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么我的代码永远运行?它只是一堆带int的for循环,应该是递减的?   java如何更改IntelliJ IDEA中的XML缩进?   java如何使未填充的int数组不打印0?   eclipse My Weka Java代码结果*Weka*虚拟*STRING*用于*STRING*属性*   java泄漏了Windows com。安卓内部的政策恳求   java这个无限循环的原因是什么?   swing My标签在Java中很模糊   java如何在组件表示存储扩展中获取组件对象   java如何避免selenium网格中的会话超时   Java乘法测验,如果答案错误,如何循环   在Java HttpServlet Google app engine中保存对象   java ArrayList过滤器   java跳跃减慢了xvelocity:使用Libgdx/Box2D进行跳跃和跑步   java删除、复制和修改pom。xml文件   当提供的时区与服务器的时区相同时,RestCall中的java@DateTimeFormat(iso=iso.DATE_TIME)不工作   java Spring批处理多线程默认限制为10隐式?   安卓错误java。lang.UnsupportedOperationException:无法转换为维度:type=0x1