转载地址

https://blog.csdn.net/blmoistawinde/article/details/81782971

共指消解

首先简要地说说共指消解是什么,有什么用处。假设机器正在阅读一个这样的文本:

克劳德·莫奈是印象派代表人物和创始人之一。
他最重要的风格是改变了阴影和轮廓线的画法。

如果机器想要从这段话中了解到关于莫奈风格的知识,它首先必须知道,第二句话中的“他”指的就是莫奈。弄清代词的指代就是共指消解中的一个典型任务。

关于共指消解,更详细的概念可以参照:

https://blog.csdn.net/qjc937044867/article/details/51694547

下面直接引出解决这个问题的一个开源工具——NeuralCoref。

NeuralCoref

Github官网:https://github.com/huggingface/neuralcoref

NeuralCoref是使用时下先进神经网络技术完成指代消解任务的一个工具。它不是一个独立的python库, 而是另一个高速强大的python自然语言处理库——spaCy的一个拓展包,因此,要使用这个工具首先要安装spaCy:

pip install spacy

然后,再安装NeuralCoref支持的几个模型,下面的例子中,我会使用面向英语的小模型,安装方法如下:

pip install https://github.com/huggingface/neuralcoref-models/releases/download/en_coref_sm-3.0.0/en_coref_sm-3.0.0.tar.gz

如果需要更大的词汇量和准确率,把链接中的sm改成md/lg就可以下载对应的中模型和大模型。

基本用法

下面用jupyter notebook展示其基本用法:

下一篇文章里,我会再尝试共指消解的一个有趣应用:

NeuralCoref: 用指代消解来做一个“能多轮对话的问答对话机器人”

NeuralCoref: python的共指消解工具教程的更多相关文章

  1. Python爬虫与数据分析之进阶教程:文件操作、lambda表达式、递归、yield生成器

    专栏目录: Python爬虫与数据分析之python教学视频.python源码分享,python Python爬虫与数据分析之基础教程:Python的语法.字典.元组.列表 Python爬虫与数据分析 ...

  2. Python黑帽编程1.3 Python运行时与包管理工具

    Python黑帽编程1.3  Python运行时与包管理工具 0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and ...

  3. 用Python编写博客导出工具

    用Python编写博客导出工具 罗朝辉 (http://kesalin.github.io/) CC 许可,转载请注明出处   写在前面的话 我在 github 上用 octopress 搭建了个人博 ...

  4. python迭代器与iter()函数实例教程

    python迭代器与iter()函数实例教程 发布时间:2014-07-16编辑:脚本学堂 本文介绍了python迭代器与iter()函数的用法,Python 的迭代无缝地支持序列对象,而且它还允许程 ...

  5. 从零开始学数据分析,什么程度可以找到工作?( 内附20G、5000分钟数据分析工具教程大合集 )

    从零开始学数据分析,什么程度可以找到工作?( 内附20G.5000分钟数据分析工具教程大合集 )   我现在在Coursera上面学data science 中的R programming,过去很少接 ...

  6. Python 爬虫:把廖雪峰教程转换成 PDF 电子书

    写爬虫似乎没有比用 Python 更合适了,Python 社区提供的爬虫工具多得让你眼花缭乱,各种拿来就可以直接用的 library 分分钟就可以写出一个爬虫出来,今天尝试写一个爬虫,将廖雪峰老师的 ...

  7. Python基于共现提取《釜山行》人物关系

    Python基于共现提取<釜山行>人物关系 一.课程介绍 1. 内容简介 <釜山行>是一部丧尸灾难片,其人物少.关系简单,非常适合我们学习文本处理.这个项目将介绍共现在关系中的 ...

  8. Python 简单入门指北(一)

    Python 简单入门指北(一) Python 是一门非常容易上手的语言,通过查阅资料和教程,也许一晚上就能写出一个简单的爬虫.但 Python 也是一门很难精通的语言,因为简洁的语法背后隐藏了许多黑 ...

  9. 初识TPOT:一个基于Python的自动化机器学习开发工具

    1. TPOT介绍 一般来讲,创建一个机器学习模型需要经历以下几步: 数据预处理 特征工程 模型选择 超参数调整 模型保存 本文介绍一个基于遗传算法的快速模型选择及调参的方法,TPOT:一种基于Pyt ...

随机推荐

  1. Mock分页

    前后端分离开发时,一般会使用mock. 因为mock是用node运行的,行为与调用后台一致. 这样,不需要等后台写好,只要有接口文档,前端可以自己调接口,这样联调时遇到的问题会少很多,可以加快整体开发 ...

  2. php判断是否为数字

    判断是否为数字 使用is_numeric函数,可以判断数字或者数字字符串 $variables = [ 0, 36, 3.6, .36, '36', 'a36', 044, //8进制 0x24, / ...

  3. ~~网络编程(四):socket套接字~~

    进击のpython ***** 网络编程--socket socket的中文意思叫做套接字,socket方法其实也叫套接字方法 我们研究过TCP/UDP协议,但是要是让我们自己搭建,就十分困难了 而这 ...

  4. 从element-ui按需引入去探索

    element-ui的按需引入的配置:文档地址 npm install babel-plugin-component -D { "presets": [["es2015& ...

  5. MongoDB基本使用方法

    mongo与关系型数据库的概念对比,区分大小写,_id为主键. 一.数据库操作 >show dbs或者show databases   #查看所有数据库 >use dbname    #创 ...

  6. Python os.symlink() 方法

    概述 os.symlink() 方法用于创建一个软链接.高佣联盟 www.cgewang.com 语法 symlink()方法语法格式如下: os.symlink(src, dst) 参数 src - ...

  7. CF R 209 div 2 CF359B Permutation 构造

    LINK:Permutation 休闲一下 开了一道构造题. 看起来毫无头绪 其实仔细观察第二个条件 0<=2k<=n. 容易想到当n是奇数的时候 k的范围更小 再手玩一下第一个条件 容易 ...

  8. Python PIL方式打开的图片判断维度

    1. PIL方式打开的图片判断维度    好久没更新啦,哈哈哈~~!今天跟宝宝们分享一篇如何判断灰度图像和彩色图像维度的方法.我们在读取灰度图像和彩色图像时,发现读取出来的图片维度不同,当我们要做后续 ...

  9. Ubuntu16.04编译Openjdk8,笔者亲测编译成功

    现在很多语言都不开发运行环境了,都选择在JRE上运行,足以证明JVM的优越.你精通了JVM,未来的路才可能走得轻松.这篇文章是你走近jvm的第一篇,编译Openjdk8源码 编译环境 操作系统:Ubu ...

  10. 认识IPv4分组

    强化一下记忆:以免忘记. 图就不放了. 首部20B (4B的整数倍) 的固定部分12个域,的确很麻烦的:IPv6才8个域,首部长度8B的整数倍 20B分5行吧,每行4B,即32位.第一行,第二行,第三 ...