斯坦福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第三方库


热门话题
未在Tomcat中加载java JAR文件   java创建了一个SpringMVC应用程序,该应用程序在身份验证后将每个请求重定向回以前的URL   Scala未来到Java完全未来   java对象数组重复擦除   Java中的国际化多语言本地化   java在运行Eclipse SWT应用程序后,它显示了许多异常   C++在应用程序运行时返回常量动态JNI数据到java对象   java比较两个未知类型的数组   java为什么以及何时在安卓中注销内容观察员   java如何使用jsoup将正确的字符集设置为proxyserver?   反射Java将变量列表转换为变量名到变量值的映射   java如何阻止编译器将单元化对象作为错误读取   java如何在Intellij IDEA或Android Studio中搜索未解析的库?