GVKun编程网logo

如何使用Open nlp的分块解析器提取名词短语(如何使用open nlp的分块解析器提取名词短语)

11

以上就是给各位分享如何使用Opennlp的分块解析器提取名词短语,其中也会对如何使用opennlp的分块解析器提取名词短语进行解释,同时本文还将给你拓展5分钟NLP:使用OpenNRE进行关系提取、9

以上就是给各位分享如何使用Open nlp的分块解析器提取名词短语,其中也会对如何使用open nlp的分块解析器提取名词短语进行解释,同时本文还将给你拓展5分钟 NLP:使用 OpenNRE 进行关系提取、9月16日直播回顾|使用OpenVINO推理和优化NLP模型(一)、android – 如何使用OpenGL模拟OpenCV的warpPerspective功能(透视变换)、delphi – 如何使用Open Tools API检测IDE中的文件是否正在编辑等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

如何使用Open nlp的分块解析器提取名词短语(如何使用open nlp的分块解析器提取名词短语)

如何使用Open nlp的分块解析器提取名词短语(如何使用open nlp的分块解析器提取名词短语)

我是自然语言处理的新手。我需要从文本中提取名词短语。到目前为止,我已经使用open
nlp的分块解析器来解析我的文本以获得Tree结构。但是我无法从中提取名词短语。树结构,在打开的nlp中是否有任何正则表达式模式,以便我可以用它来提取名词短语。

下面是我正在使用的代码

    InputStream is = new FileInputStream("en-parser-chunking.bin");    ParserModel model = new ParserModel(is);    Parser parser = ParserFactory.create(model);    Parse topParses[] = ParserTool.parseLine(line, parser, 1);        for (Parse p : topParses){                 p.show();}

在这里,我得到的输出为

(TOP(S(S(ADJP(JJ欢迎光​​临)(PP(TO至)(NP(NNP大)(NNP数据。))))))(S(NP(PRP We))(VP(VP(VBP
are) (VP(VBG工作)(PP(IN上的)(NP(NNP自然)(NNP语言)(NNP
Processing.can)))))(NP(DT一些)(CD个)(NN帮助))(NP( PRP us))(PP(IN
in)(S(VP(VBG提取)(NP(DT the)(NN名词)(NNS短语)))(PP(IN from)(NP(DT the)(NN树)(
WP结构。))))))))))

有人可以帮我得到NP,NNP,NN等名词短语吗?有人可以告诉我我是否需要使用任何其他NP
Chunker来获得名词短语吗?是否有任何正则表达式模式来实现相同目的?

请帮我。

提前致谢

咕use

答案1

小编典典

Parse对象是一个树; 您可以使用getParent()getChildren()getType()导航树。

List<Parse> nounPhrases;public void getNounPhrases(Parse p) {    if (p.getType().equals("NP")) {         nounPhrases.add(p);    }    for (Parse child : p.getChildren()) {         getNounPhrases(child);    }}

5分钟 NLP:使用 OpenNRE 进行关系提取

5分钟 NLP:使用 OpenNRE 进行关系提取

关系提取、知识图谱、实体和 OpenNRE

关系提取( Relation Extraction)是一项自然语言处理任务,旨在提取实体之间的关系。 例如,从句罗密欧与朱丽叶是由威廉莎士比亚写的,我们可以提取关系三元组(威廉莎士比亚,是罗密欧与朱丽叶的作者)。

关系提取是自动知识图谱构建中的一项关键技术。 通过关系提取,我们可以累积提取新的关系事实,扩展知识图谱,这些知识可以作为机器理解人类世界的一种方式,在问答、推荐系统、搜索引擎等下游有很多应用。

OpenNRE 是对文本进行关系提取最常用的库之一。

OpenNRE 是一个开源且可扩展的工具包,它提供了一个统一的框架来实现关系提取模型。

该库带有两个预训练模型,无需任何训练即可投入生产:

  • wiki80_cnn_softmax:使用 CNN 编码器在 Wiki80 数据集上训练。
  • wiki80_bert_softmax:使用 BERT 编码器在 Wiki80 数据集上训练。

两个模型都在 Wiki80 数据集上进行训练,该数据集由 80 个关系组成,每个关系有 700 个实例。

为了使用 OpenNRE 库,必须首先从它的 repo 安装它:

# download repo with OpenNRE library
git clone https://github.com/thunlp/OpenNRE.git

# install library
cd OpenNRE
pip install -r requirements.txt
python setup.py install

接下来的步骤是:

  • Python 代码中导入库
  • 加载预训练模型。
  • 调用模型的 infer 函数,传递 (1) 一个段落,(2) 第一个实体位置,以及 (3) 第二个实体位置。 该函数返回实体对的预测关系,使用段落作为上下文。
import opennre

# download NRE pretrained model
model = opennre.get_model(''wiki80_cnn_softmax'')

# text used to look for relations
text = """
Kobe Bean Bryant was an American professional basketball player.
A shooting guard, he spent his entire career with the Los Angeles Lakers in the NBA.
"""

# choose two entities whose relation is to be predicted
h_text = "Kobe Bean Bryant"
t_text = "shooting guard"
h_pos = (text.index(h_text), text.index(h_text) + len(h_text))
t_pos = (text.index(t_text), text.index(t_text) + len(t_text))

# predict relation
model.infer({''text'': text, ''h'': {''pos'': h_pos}, ''t'': {''pos'': t_pos}})

# output:
# (''position played on team / speciality'', 0.9829357862472534)

尽管名称为关系提取,但我们在这里看到的示例实际上是一个多标签分类问题,其中可以提取的关系类型是训练集中存在的关系类型。

https://medium.com/nlplanet/t...

9月16日直播回顾|使用OpenVINO推理和优化NLP模型(一)

9月16日直播回顾|使用OpenVINO推理和优化NLP模型(一)

点击蓝字

关注我们,让开发变得更有趣

资料整理|赵铭哲

文案排版|李擎


NLP大赛介绍

中文临床医学文本分词与命名实体挑战赛开启报名
OpenVINO推理赛道 相关学习资料推荐
OpenVINO 赛道介绍及评分规则

使用OpenVINO推理和优化NLP模型(一)

OpenVINO 


讲师简介

闫广庆

自然语言处理爱好者。

喜欢将前沿的技术落地到场景中,做过合理用药引擎,电子病历命名实体识别,电子病历关系抽取,电子病历事件抽取,目前在做企业维度的信息抽取、企业图谱抽取、企业图谱支撑的企业投融资关系预测、企业图谱表征搜索引擎方向工作。


2021年9月16日,闫广庆老师在线上给大家带来了使用OpenVINO推理和优化NLP模型课程的第一节。

此次分享的主题是自然语言处理。内容包含自然语言处理的应用,统计自然语言的处理,深度学习自然语言处理,自然语言处理语言模型进化历史,预训练语言模型自然语言处理。


OpenVINO


首先,闫老师先讲解了自然语言处理的应用所应用到的场景有哪些,讲了一些实际的场景,并根据场景的来选择所需要用到的实体,关系,事件,相似度等:

例如在医疗行业,可以做电子病历解析,或者根据药物热词,就可以针对药物的用量反馈给对应的制药厂;在教育行业,则可以做作文生成式推荐,根据你已经写的/要写内容的内容进行预估。



接下来,闫老师讲解了统计自然语言的处理逻辑及处理方式,从专业的角度去讲解了分词的概念,分词的分类,以及各个分词分类之间的区别;讲解了数据结构,特征,统计翻译模型,讲解了词性主要是用来识别词语是动词,名词,形容词等一般采用什么样的标注模式去标注,例如(BIO,BIOS,BIOES),命名实体识别等,也讲述了统计自然语言通常使用2中分类方式去做统计(朴素贝叶斯文本分类,支持向量机文本分类)



随后,闫老师讲解了深度学习在自然语言处理中的使用,例如深度学习模型(cnn,lstm,gru),深度学习中文本编码(tfidf,bow,nnlm,onehot,fasttext,word2vec,elmo)等方式的概念,基本使用的场景,以及常用的几个编码方式的区别之处,还讲解了关系抽取,事理图谱,阅读理解,文本翻译,文本纠错,文本转编程语言,问答等。

自然语言处理语言模型进化的历史闫老师也进行了简要的说明,来帮助我们更好的对这个模型进行理解。



在最后老师讲解了预训练语言模型自然语言处理的内容,里面包含了:( Transform,Attention,ConvolutionAttention,CrossAttention,Globalvs.LocalAttention,CompositionalAttention,bert)


OpenVINO


以上部分就是此次闫老师在此次直播课程中所分享的内容大概,满满的全是干货~

回顾视频我们已上传至B站,大家可点击文末“阅读原文”跳转观看;而本次分享中,闫老师所准备的ppt文件也已上传公众号菜单栏-获取资料-往期资料中,大家可自行取用。


--END--


你也许想了解(点击蓝字查看)⬇️

➡️ 大赛报名|来自飞桨黑客松的邀请函

➡️ Intel 邀您共建AI产业应用生态圈—(兼职)师资招募

➡️ Intel 实训项目培训报名中

➡️ OpenVINO推理赛道 相关学习资料推荐

➡️ OpenVINO™ 2021.4 手写字符识别模型与使用
➡️  OpenVINO™ 场景文字识别与同步与异步推理

➡️ 预防损失检测的实时传感器融合用例




欢迎在留言区与我们互动哦,
点击小程序 留言区 即可参与

留言区






 点击 “ 在看 ”,让更多人看见


点击 阅读原文 查 看 录 播 视 频 !

本文分享自微信公众号 - OpenVINO 中文社区(openvinodev)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

android – 如何使用OpenGL模拟OpenCV的warpPerspective功能(透视变换)

android – 如何使用OpenGL模拟OpenCV的warpPerspective功能(透视变换)

我在Python和C中使用OpenCV完成了图像变形,看到可口可乐标志在我选择的角落里扭曲了:

final image

使用以下图像:

logo image

还有这个:

enter image description here

Full album with transition pics and description here

我需要做到这一点,但在OpenGL中.我会:

>角落里面我要映射扭曲的图像
>单应矩阵,用于映射徽标图像的变换
进入最终图像内部的徽标图像(使用OpenCV
warpPerspective),像这样:

[[  2.59952324e+00,   3.33170976e-01,  -2.17014066e+02],
[  8.64133587e-01,   1.82580111e+00,  -3.20053715e+02],
[  2.78910149e-03,   4.47911310e-05,   1.00000000e+00]]

>主图像(此处为跑道图像)
>叠加图像(可口可乐图像在这里)

可能吗 ?我已经阅读了很多并开始了OpenGL基础知识教程,但它可以从我拥有的内容中完成吗? OpenGL实现会更快,比如大约10ms左右吗?

我现在正在玩这个教程:
http://ogldev.atspace.co.uk/www/tutorial12/tutorial12.html
我正朝着正确的方向前进吗?总的OpenGL新手在这里,请承担.谢谢.

解决方法:

在尝试了这里和其他地方提出的一些解决方案之后,我通过编写一个复制“warpPerspective”的片段着色器来解决这个问题.

片段着色器代码类似于:

varying highp vec2 textureCoordinate;

uniform sampler2D inputimageTexture;

// NOTE: you will need to pass the INVERSE of the homography matrix, as well as 
// the width and height of your image as uniforms!
uniform highp mat3 inverseHomographyMatrix;
uniform highp float width;
uniform highp float height;

void main()
{
   // Texture coordinates will run [0,1],[0,1];
   // Convert to "real world" coordinates
   highp vec3 frameCoordinate = vec3(textureCoordinate.x * width, textureCoordinate.y * height, 1.0);

   // Determine what 'z' is
   highp vec3 m = inverseHomographyMatrix[2] * frameCoordinate;
   highp float zed = 1.0 / (m.x + m.y + m.z);
   frameCoordinate = frameCoordinate * zed;

   // Determine translated x and y coordinates
   highp float xTrans = inverseHomographyMatrix[0][0] * frameCoordinate.x + inverseHomographyMatrix[0][1] * frameCoordinate.y + inverseHomographyMatrix[0][2] * frameCoordinate.z;
   highp float yTrans = inverseHomographyMatrix[1][0] * frameCoordinate.x + inverseHomographyMatrix[1][1] * frameCoordinate.y + inverseHomographyMatrix[1][2] * frameCoordinate.z;

   // normalize back to [0,1],[0,1] space
   highp vec2 coords = vec2(xTrans / width, yTrans / height);

   // Sample the texture if we're mapping within the image, otherwise set color to black
   if (coords.x >= 0.0 && coords.x <= 1.0 && coords.y >= 0.0 && coords.y <= 1.0) {
       gl_FragColor = texture2D(inputimageTexture, coords);
   } else {
       gl_FragColor = vec4(0.0,0.0,0.0,0.0);
   }
}

请注意,我们在这里传递的单应矩阵是逆向自然矩阵!你必须反转你将传递给’warpPerspective’的单应矩阵 – 否则这段代码将无效.

顶点着色器除了通过坐标外什么都不做:

// Vertex shader
attribute vec4 position;
attribute vec4 inputTextureCoordinate;

varying vec2 textureCoordinate;

void main() {
   // nothing happens in the vertex shader
   textureCoordinate = inputTextureCoordinate.xy;
   gl_Position = position;
}

传入未改变的纹理坐标和位置坐标(即textureCoordinates = [(0,0),(0,1),(1,0),(1,1)]和positionCoordinates = [(-1,-1),( -1,1),(1,-1),(1,1)],对于三角形条),这应该工作!

delphi – 如何使用Open Tools API检测IDE中的文件是否正在编辑

delphi – 如何使用Open Tools API检测IDE中的文件是否正在编辑

我使用Open Tools API创建了一个访问ClearCase的小型IDE插件.它有菜单项“Check In”,“Check Out”等.它工作正常,但是如果我开始在IDE编辑器中输入或者我试图保存文件,我希望它自动检出一个只读文件.你认为这有可能吗?

我尝试了一些事情但最终放弃了. IOTAEditorServices.KeyboardServices具有看起来很有前景的AddKeyboardBinding方法.使用它我添加了一个带有绑定类型btPartial的通知程序(后来尝试了btComplete)并且插件开始检测一些快捷键按下但不是所有键盘事件,远非它…任何想法将非常感谢!

解决方法

我认为一种“更清洁”的方法是将IOTAEditorNotifier连接到每个编辑器,并且只要通过键盘,鼠标或其他插件的编程方式修改编辑器的内容,就可以通过IDE调用IOTAEditor.Modified方法.

Here是一个注册IOTAIDENotifier的示例,用于通知IDE中打开的文件,以便它可以注册其IOTAEditorNotifier实例.

我们今天的关于如何使用Open nlp的分块解析器提取名词短语如何使用open nlp的分块解析器提取名词短语的分享已经告一段落,感谢您的关注,如果您想了解更多关于5分钟 NLP:使用 OpenNRE 进行关系提取、9月16日直播回顾|使用OpenVINO推理和优化NLP模型(一)、android – 如何使用OpenGL模拟OpenCV的warpPerspective功能(透视变换)、delphi – 如何使用Open Tools API检测IDE中的文件是否正在编辑的相关信息,请在本站查询。

本文标签:

上一篇使用Apache POI在Excel文件中获取列名称(apache poi读取excel)

下一篇Spring Controller处理所有其他Controller不匹配的请求(spring中controller)