Ich habe gelernt, dass es eine eingebaute Funktion in NLTK die Beziehungen von NER-markierten Sätze nach folgendem extrahieren könnte:NLTK Relation Extraction - custom Korpus in relextract.extract_rels
import re
IN = re.compile(r'.*\bin\b(?!\b.+ing\b)')
for fileid in ieer.fileids():
for doc in ieer.parsed_docs(fileid):
for rel in relextract.extract_rels('ORG', 'LOC', doc, corpus='ieer', pattern = IN):
print(relextract.rtuple(rel))
Es scheint mir sehr viel versprechend für allgemeine Zwecke, aber ich habe verstanden, dass relextract.extract_rels
nur 'ieer'
oder 'conll2002'
für den Parameter corpus
akzeptiert. Aber in diesem Fall ist seine Verwendung nur auf diese beiden Korpora beschränkt, oder? Wie könnte man es für sein eigenes Korpus verwenden (vorausgesetzt natürlich, dass es NER-markiert ist).
Vielen Dank. Ich bin ein wenig verwirrt darüber, warum genau hier "doc" und "corpus" notwendig sind? Man benötigt hier nur eine Texteingabe, nämlich den Chunked Text, der extrahiert werden soll. Was fügt der Korpus hier dem Prozess hinzu? – Hendrik
Betrachtet man die Quelle [hier] (http://www.nltk.org/_modules/nltk/sem/relextract.html) definiert "corpus" die NE (name-entity) -Klassen, die verschiedenen möglichen corpus-Argumenten zugeordnet sind. Sieh dir das Wörterbuch 'NE_CLASSES' an. –