跳到内容

ambiverse-nlu/ambiverse-nlu

存储库文件导航

试试演示http://ambiversenlu.mpi-inf.mpg.de

Ambiverse自然语言理解-AmbiverseNLU

生成状态 DockerHub接口 Hex.pm公司

多语言Ambiverse自然语言理解套件(AmbiverseNLU)结合了语言理解任务的最先进组件数量:命名实体识别和消歧(或实体链接)、开放信息提取、实体显著性估计和概念链接,提供基础用于文本到知识的应用程序。

以下面的句子为例:

杰克在软银和高盛的投资下创立了阿里巴巴。

AmbiverseNLU将产生以下输出:

AmbiverseNLU演示

AmbiverseNLU演示

无需安装任何东西即可快速使用AmbiverseNLU:演示http://ambiversenlu.mpi-inf.mpg.de

快速入门

使用Docker调用Web服务

使用Docker启动AmbiverseNLU作为web服务(带有PostgreSQL后端)很简单,使用Docker compose(注意,在填充数据库时,这可能需要几个小时):

docker-compose-f docker-coste/service-postgres.yml向上

如果您的机器的主内存不足32GB,请运行此配置,这样可以减少实体数量(一些大公司和相关实体),但足以解决以下问题:

docker-compose-f docker-coste/service-postgres-small.yml up

等待一段时间(取决于您的互联网连接和CPU速度,很容易需要一个多小时),然后呼叫服务:

curl—请求POST\--网址http://localhost:8080/factextraction/analyze \--标题“accept:application/json”\--标题“content-type:application/json”\--data'{“docId”:“doc1”,“text”:“杰克用软银和高盛的投资创立了阿里巴巴。”,“extractConcepts”:“true”}'

您可以使用不同的数据库作为后端运行AmbiverseNLU,也可以单独启动数据库后端。查看上Docker文件的不同配置https://github.com/ambiverse-nu/dockerfiles(https://github.com/ambivere-nu/duckerfiles)了解详细信息。

其他跑步方式

启动数据库后端

使用完全多语言知识图启动PostgreSQL后端(注意,在填充数据库时,这可能需要几个小时):

docker run-d--名称nlu-db-postgres\-第5432:5432页\-e POSTGRES_DB=aida_20180120_cs_de_en_es_ru_zh_v18_DB\-e POSTGRES_USER=ambiversenlu\-e POSTGRES_PASSWORD=ambiversenlu\ambiverse/nlu-db-postgres

如果您的主内存不足32GB,您还可以使用较小的知识图启动PostgreSQL后端,其中只包含少数公司和相关实体,只支持英语和德语:

docker run-d--名称nlu-db-postgres\-第5432:5432页\-e POSTGRES_DB=aida_20180120_b3_de_en_v18_DB\-e POSTGRES_USER=ambiversenlu\-e POSTGRES_PASSWORD=ambiversenlu\ambivers/nlu数据库postgres

确保使用艾达_20180120_b3_de_en_v18_db作为的值AIDA_CONF公司导出如下。

使用Maven和Jetty从源代码启动Web服务

  1. 调整数据库配置。你需要调整数据库aida.属性AIDA_CONF公司您正在使用。例如,如果您正在使用艾达_20180120_cs_de_ens_ru_zh_v18_db作为配置,调整src/main/config/aida_20180120_cs_de_en_es_ru_zh_v18_db/数据库aida.properties并确保数据源服务器名称指向运行数据库的计算机主机(或链接的docker映像)。
  2. 通过执行以下脚本启动web服务:
导出AIDA_CONF=AIDA_20180120_cs_de_en_es_ru_zh_v18_db./scripts/start_webservice.sh

你可以MAVEN_OPTS公司如果要更改端口和可用内存,请在脚本中执行。如果你适应AIDA_CONF公司,确保上面启动的PostgreSQL后端使用相同的配置值。这个数据库aida.属性配置必须指向现有数据库。

从命令行运行管道

按照上一节(启动Web服务)中的说明调整数据库配置。

主命令行界面是de.mpg.mpi_inf.ambiversenlu.nlu.entitylinking.run。UimaCommandLine处理器。使用脚本调用示例:

导出AIDA_CONF=AIDA_20180120_cs_de_en_es_ru_zh_v18_dbmkdir nlu输入echo“Jack在软银和高盛的投资下创立了阿里巴巴。”>nlu input/doc.txt./scripts/driver/run_pipeline.sh-d nlu输入-i文本-l en-pip ENTITY_ALIENCE

现有管道的列表可以在中找到de.mpg.mpi_inf.ambiversenlu.nlu.entitylinking.uima.管线。管道类型,其中还可以定义新管道。

数据库转储

可以从下载数据库转储http://ambiversenlu-download.mpi-inf.mpg.de/。数据库驳接器图像将自动下载。

自然语言理解组件

KnowNER:命名实体识别

命名实体识别(NER)识别提及的命名实体(个人、,组织、地点、歌曲、产品…)在文本中。

KnowNER处理英语、捷克语、德语、西班牙语和俄语文本。

AmbiverseNLU为NER提供KnowNER[1]。

AIDA:命名实体消歧

命名实体消歧(NED)链接被NER识别(见上文)到唯一标识符。大多数名字都不明确,尤其是姓氏,实体消歧解决了这种歧义。与NER一起,NED是通常称为实体链接。

AIDA处理英语、汉语、捷克语、德语、西班牙语和俄语文本。

AmbiverseNLU为NED提供了AIDA[2]的增强版本,映射提到了在Wikipedia派生的YAGO[4,5]知识库中注册的实体。

ClausIE:开放式信息提取

开放信息提取(OpenIE)的任务是从n元命题形式的自然语言文本,由一个主题组成,一个关系和一个或多个参数。例如,在“阿尔伯特·爱因斯坦出生于乌尔姆”,一个开放的信息提取系统将生成提取(“阿尔伯特·爱因斯坦”,“出生于”,“乌尔姆”),第一个论点通常是称为主体,第二个称为关系,最后一个称为客体或论点。

克劳斯致力于英语文本。

AmbiverseNLU为OpenIE提供了ClausIE[3]的增强版本。

概念链接

概念链接类似于实体链接,但侧重于未命名的实体(例如,汽车、椅子等)。它确定文本中的相关概念并将其链接到维基百科衍生的YAGO[4,5]知识库中注册的概念。

概念链接适用于英语、汉语、捷克语、德语、西班牙语和俄语文本。

AmbiverseNLU基于原始AIDA提供了一个新的概念链接组件实体消歧与知识识别。

实体突出度

实体显著性给文档中的每个实体以[0,1]分,表示其与文件相关的重要性。

我们的实体显著性是完全多语言的。

资源注意事项

主存储器

实体/概念链接组件具有最大的主内存需求。这个这是因为它需要加载大量的上下文和连贯模型来消除歧义具有高精度。

最初,实体链接将静态数据加载到主内存中,这需要(取决于您正在为其配置的语言),几个GB。我们估计所有语言的容量为8 GB成为上限。

每个文档的实际要求根据提及的密度和每次提及的实体数,因此不能仅根据文档的长度进行估计。为了安全起见,每个文档计划8GB的主内存。

这意味着,如果要一次消除一个文档的歧义,至少需要16GB主存储器的。如果要并行消除4个文档的歧义,应使用40 GB。

磁盘空间

完整的AmbiverseNLU数据库aida_20180120_cs_de_en_es_ru_zh_v18_db需要387 GB的磁盘空间。

吞吐量分析

基准测试设置:(多线程)实体链接服务位于单个Docker容器中,使用4个内核和32GB主内存。在同一物理机器上运行的Cassandra节点。

对于1000篇高质量设置(连贯性)的新闻文章(平均2531个字符,平均26个命名实体):

  • 每篇文章的平均时间:2.36秒
  • 吞吐量:每秒1.7个文档

评价

广泛使用的CoNLL-YAGO数据集[2]的实体消歧精度如下:

  • 微准确度:84.61%
  • 宏观精度:82.67%

高级配置

配置环境

大多数设置都是通过“src/main/config”中的文件夹绑定的。设置配置您需要使用AIDA_CONF环境变量,例如:

导出AIDA_CONF=AIDA_20180120_cs_de_en_es_ru_zh_v18_db

AmbiverseNLU管道

AmbiverseNLU具有基于UIMA和DKPro的灵活功能,允许您指定要运行的组件。许多有用的管道是预配置,可以轻松添加新的。

以编程方式使用管道

在web服务中:

看看吧de.mpg.mpi_inf.ambiversenlu.nlu.entitylinking.service.web.resource.impl。分析资源实现.java它配置web服务。

作为独立应用程序

看看吧de.mpg.mpi_inf.ambiversenlu.nlu.drivers.test软件。消除歧义de.mpg.mpi_inf.ambiversenlu.nlu.drivers.test软件。打开IE例如。

创建新管道

管道是中的枚举de.mpg.mpi_inf.ambiversenlu.nlu.entitylinking.uima.管线。管道类型。每个管道都包含应该执行组件。部件位于de.mpg.mpi_inf.ambiversenlu.nlu.entitylinking.uima.com成员。组件.

构建自己的YAGO知识图

默认情况下,AmbiverseNLU使用YAGO知识库。

建造步骤:

  1. 使用创建YAGO KG和AIDA存储库脚本/repository_creation/createAidaRepository.py
  2. 构建更新的KnowNER模型(可选),再次使用脚本/repository_creation/createAidaRepository.py经过--重用-yago--阶段KNOWNER_PREPARE_RESOURCES、KNOWLER_TRAIN_MODEL作为附加参数

构建自定义知识图

AmbiverseNLU体系结构与知识库无关,允许您导入自己的概念和实体,或将它们与YAGO组合。看看吧de.mpg.mpi_inf.ambiversenlu.nlu.entitylinking.datapreparation(数据准备)。准备数据de.mpg.mpi_inf.ambiversenlu.nlu.entitylinking.datapreparation.conf.GenericPrepConf开始吧。

扩展KnowNER

KnowNER提供了添加新语言的方法。看看吧docs/know-ner/new_corpus.md文件docs/know-ner/new_language.md文档.

更多信息

保持联系

注册AmbiverseNLU邮件列表:访问https://lists.mpi-inf.mpg.de/listinfo/ambiversenlu网站或发送邮件至ambiversenlu-subscribe@lists.mpi-inf.mpg.de

AmbiverseNLU许可证

Apache许可证,2.0版

维护者和贡献者

当前维护人员(按字母顺序):

  • Ghazale Haratinezhad Torbati公司
  • 约翰内斯·霍法特
  • 卢西亚诺·德尔·科罗

贡献者(按字母顺序):

  • 阿特姆·博尔德列夫
  • 丹尼尔·巴赫
  • Dat Ba Nguyen公司
  • 迭戈·塞卡雷利
  • 多米尼克·塞勒
  • Dragan Milchevski(前维护人员)
  • 费利克斯·凯勒
  • Ghazale Haratinezhad Torbati公司
  • 伊拉里亚·博尔迪诺
  • 约翰内斯·霍法特
  • 卢西亚诺·德尔·科罗
  • 穆罕默德·阿米尔·约瑟夫
  • 塔蒂亚娜·德姆贝洛娃
  • 瓦桑特·文卡特拉曼

工具书类

  • [1] D.Seyler、T.Dembelova、L.Del Corro、J.Hoffart和G.Weikum,“外部知识在命名实体识别任务中的重要性研究”,计算语言学协会第56届年会论文集,ACL 2018,澳大利亚墨尔本,2018
  • [2] J.Hoffart、M.A.Yosef、I.Bordino、H.Furstenau、M.Pinkal、M.Spaniol、B.Taneva、S.Thater和G.Weikum,“文本中命名实体的稳健消歧”,《2011年自然语言处理实证方法会议论文集》,EMNLP 2011,苏格兰爱丁堡,2011
  • [3] L.Del Corro和R.Gemulla,“基于子句的开放信息提取”,第22届万维网国际会议论文集,2013年WWW,巴西里约热内卢,2013年
  • [4] T.Rebele、F.M.Suchanek、J.Hoffart、J.Biega、E.Kuzey和G.Weikum,“YAGO-维基百科、Wordnet和地名的多语言知识库”,第15届国际语义网会议论文集,ISWC 2016,日本神户,2016
  • [5] J.Hoffart、F.M.Suchanek、K.Berberich和G.Weikum,“YAGO2:维基百科的空间和时间增强知识库”,人工智能,第194卷,第28-61页,2013年

关于

AmbiverseNLU:马克斯·普朗克信息学院的自然语言理解套件

资源

许可证

星星

观察者

叉子

包装

未发布包