Mendukung Perpustakaan Corenlp terbaru 4.5.3 (pada 2023-03-10).
Ekstraksi informasi terbuka (IE terbuka) mengacu pada ekstraksi hubungan terstruktur tiga kali lipat dari teks biasa, sehingga skema untuk hubungan ini tidak perlu ditentukan sebelumnya. Sebagai contoh, Barack Obama lahir di Hawaii akan membuat triple (Barack Obama; was born in; Hawaii) , sesuai dengan hubungan domain terbuka "lahir di". Corenlp adalah implementasi Java dari sistem IE terbuka seperti yang dijelaskan dalam makalah:
Informasi lebih lanjut dapat ditemukan di sini. Perpustakaan Openie hanya tersedia dalam bahasa Inggris.
Anda perlu dipasang Python3 dan Java (JRE). Java digunakan oleh Perpustakaan Corenlp.
Pastikan Java diinstal terlebih dahulu.
java -versionLalu pasang lib.
pip install stanford_openie from openie import StanfordOpenIE
# https://stanfordnlp.github.io/CoreNLP/openie.html#api
# Default value of openie.affinity_probability_cap was 1/3.
properties = {
'openie.affinity_probability_cap' : 2 / 3 ,
}
with StanfordOpenIE ( properties = properties ) as client :
text = 'Barack Obama was born in Hawaii. Richard Manning wrote this sentence.'
print ( 'Text: %s.' % text )
for triple in client . annotate ( text ):
print ( '|-' , triple )
graph_image = 'graph.png'
client . generate_graphviz_graph ( text , graph_image )
print ( 'Graph generated: %s.' % graph_image )
with open ( 'corpus/pg6130.txt' , encoding = 'utf8' ) as r :
corpus = r . read (). replace ( ' n ' , ' ' ). replace ( ' r ' , '' )
triples_corpus = client . annotate ( corpus [ 0 : 5000 ])
print ( 'Corpus: %s [...].' % corpus [ 0 : 80 ])
print ( 'Found %s triples in the corpus.' % len ( triples_corpus ))
for triple in triples_corpus [: 3 ]:
print ( '|-' , triple )
print ( '[...]' )Output yang diharapkan
|- {'subject': 'Barack Obama', 'relation': 'was', 'object': 'born'}
|- {'subject': 'Barack Obama', 'relation': 'was born in', 'object': 'Hawaii'}
|- {'subject': 'Richard Manning', 'relation': 'wrote', 'object': 'sentence'}
Graph generated: graph.png.
Corpus: According to this document, the city of Cumae in Ćolia, was, at an early period [...].
Found 1664 triples in the corpus.
|- {'subject': 'city', 'relation': 'is in', 'object': 'Ćolia'}
|- {'subject': 'Menapolus', 'relation': 'son of', 'object': 'Ithagenes'}
|- {'subject': 'Menapolus', 'relation': 'was Among', 'object': 'immigrants'}
Ini akan menghasilkan dot graphviz di graph.png :

Catatan : Pastikan GraphViz diinstal sebelumnya. Cobalah menjalankan perintah dot untuk melihat apakah ini masalahnya. Jika tidak, jalankan sudo apt-get install graphviz jika Anda berjalan di ubuntu. Pada macOS, itu adalah brew install graphviz .
@misc{StanfordOpenIEWrapper,
author = {Philippe Remy},
title = {Python wrapper for Stanford OpenIE},
year = {2020},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {url{https://github.com/philipperemy/Stanford-OpenIE-Python}},
}