斯坦福OpenIE的简约包装

stanford-openie的Python项目详细描述


斯坦福OpenIE的Python包装器

开放信息抽取(openie)是指从纯文本中提取结构化关系的三元组,这样就不需要预先指定这些关系的模式。例如,barackobama出生在夏威夷将创建一个三(Barack Obama; was born in; Hawaii),对应于开放域关系“出生于”。CoreNLP是一个开放式IE系统的Java实现,如本文所述:

更多信息可以在这里找到:http://nlp.stanford.edu/software/openie.html

V2

fromopenieimportStanfordOpenIEwithStanfordOpenIE()asclient:text='Barack Obama was born in Hawaii. Richard Manning wrote this sentence.'print('Text: %s.'%text)fortripleinclient.annotate(text):print('|-',triple)graph_image='graph.png'client.generate_graphviz_graph(text,graph_image)print('Graph generated: %s.'%graph_image)withopen('corpus/pg6130.txt','r',encoding='utf8')asr:corpus=r.read().replace('\n',' ').replace('\r','')triples_corpus=client.annotate(corpus[0:50000])print('Corpus: %s [...].'%corpus[0:80])print('Found %s triples in the corpus.'%len(triples_corpus))fortripleintriples_corpus[:3]:print('|-',triple)

V1(已弃用)

斯坦福大学最新信息提取库的非官方跨平台Python包装器。在

^{pr2}$

用法

首先,确保安装了Java1.8。打开终端并运行以下命令以检查:

java -version

如果不是这样,如果你的操作系统是Ubuntu,你可以这样安装:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

可以通过编程方式或通过命令行调用代码。可以使用以下命令调用该程序。它将显示[['Barack Obama', ' was', ' born'], ['Barack Obama', ' was born in', ' Hawaii']]

git clone https://github.com/philipperemy/Stanford-OpenIE-Python.git
cd Stanford-OpenIE-Python
echo"Barack Obama was born in Hawaii." > samples.txt
python main.py -f samples.txt

输出应该类似于:

Barack Obama | was | born
Barack Obama | was born in | Hawaii

故障排除

第一次使用lib时,可能会出现这样的错误:

AssertionError: ERROR: Call to stanford_ie exited with a non-zero code status

错误与Java的交互有关。为了解决这个问题,我建议运行带有--verbose参数的python脚本。在日志中搜索executing command = <whatever command>行,并将此<whatever command>复制粘贴到终端中以查看错误。在

大型语料库

有时,您只想在一些比几句话更大的内容上运行信息提取工具。我提供了一个bash脚本。本例在book:The Iliad by Homer上运行该工具,由1.2M字符和26K行组成。在

./process_large_corpus.sh corpus/pg6130.txt corpus/pg6130.txt.out
wc -l corpus/pg6130.txt.out
> 23888

生成图形

echo"Barack Obama was born in Hawaii." > samples.txt
python main.py -f samples.txt -g

将在/tmp/openie/中生成GraphViz DOT图形及其相关的PNG文件

注意:确保事先安装了GraphViz。尝试运行dot命令,看看情况是否如此。如果不是,那么运行sudo apt-get install graphviz如果你在Ubuntu上运行。在

支持

您可以打开问题,也可以向premy@cogent.co.jp发送电子邮件。欢迎投稿!在

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

推荐PyPI第三方库


热门话题
java从资产中读取JSON文件   JavaFX上带线程程序的java暂停事件执行   java如何将datepicker格式转换为ddMMyyyy   多次点击swing Java按钮   java primefaces使用DefaultMenuItem同时进行重定向和操作   在JAVA中,如何将身份验证器POST请求中的会话转发到GET请求中?   用于在mongodb集合中插入包含元素数组的文档的json Java API   java DriverManager无法打开SQL连接器jar   java使用一个通用工厂方法创建实例   Java中的多线程等待条件   java Liferay 7.1限制了对虚拟实例(公司)的portlet/modules访问   安卓 Java:在读取进程的InputStream之前,等待进程的子进程完成   java只允许使用一种HTTP方法。找到,得到,放   docker我无法从我的java制作人生成kafka主题的消息