Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save cboulanger/d771a65495fee1751b8685d993cb66bc to your computer and use it in GitHub Desktop.
Save cboulanger/d771a65495fee1751b8685d993cb66bc to your computer and use it in GitHub Desktop.
OpenAI reference extraction via API (text-davinci-003): Code/Result

OpenAI reference extraction via API: Code/Result

December 2022

Code

import openai
import json
import time

start = time.time()
openai.api_key = '<openai-key>'

instruction = """Parse the following text, which is a 
footnote of a German scholarly work, and return all 
bibliographic references in CSL-JSON format:\n"""

text_to_parse = """8Die Verwendung des generischen 
Maskulinums reproduziert die Vorstellung eines 
ausschließlich männlichen Subjektes(vgl. bereits 
grundlegendPusch,Das Deutsche als Männersprache,1984,S. 82 
ff.;Trömel-Plötz,in: Pusch (Hrsg.),Inspektion der 
Herrenkultur,1983,S. 33 ff.); dieser Befund und die 
Notwendigkeit zur Reaktion aus 
gleichstellungspolitischenGründen sind gemeinhin seit 
Jahrzehnten anerkannt (vgl. nur die Richtlinien zur 
Gleichbehandlung von Frauen und Männern in der 
Vorschriftensprache vom Hessischen Ministeriums der 
Justiz,StAnz.9/1992,S. 538 ff.). Neben den 
Geschlechtskategorien Mann und Frau existieren andere Ge- 
schlechtsidentitäten, was jedoch im gesellschaftlichen 
Alltag bisher nicht hinreichend abgebildet wird (so 
wörtlich auch derBundesratin einer Entschließung, BR- Drs. 
362/17 vom4. Mai 2017). Auch das Bundesverfassungsgericht 
hat in seinem aktuellen Beschluss zum Personenstandsrecht 
das Wissen „um weitere geschlechtli- che Identitäten“ 
jenseits des binären Geschlechtsmusters herausgestellt 
(BVerfG, NJW 2017,3643 (3647)).Das Gütekriterium 
wissenschaftlicher Präzision gebietet aus diesen Gründen 
einen bewussten und nachvollziehbaren Umgang mit Sprache. 
Es gibt eine Vielzahl verschiedener Möglichkeiten der 
sprachlichen Darstellung, die diskutiert und kritisiert 
werden. Eine Variante, die auch gerade genannte 
Geschlechtsidentitäten jenseits der Kategorien Mann und 
Frau sichtbar machen soll, ist der 
Unterstrich(vgl.Hermann,arranca!28(2003),22).Er wird in 
der vorliegen- den Arbeit verwendet (so auch die 
„Empfehlung der Gleichstellungskommission der Philipps-
Universität für die Verwendung einer gendergerechten 
Sprache“ aus dem Oktober 2016); vgl. aus dem Bereich der 
aktuellen Rechtswissenschaften auch 
Rienhoff,Präventionsarbeit im sozialen Brennpunkt,2016,S. 
24;allgemein zur besonderen Bedeutung 
geschlechtsspezifischer Aspekte in der 
Rechtsextremismusforschung Lang,in: Häusler/Kellershohn 
(Hrsg.),Das Gesicht des völkischen Populismus,2018,S. 147 
ff.;Bitzan,in: Virchow u. a. (Hrsg.),Handbuch 
Rechtsextremis- mus,2016,S. 325 ff.;Esen,in: Braun u. a. 
(Hrsg.),Strategien der extremen Rechten,2016,S. 287 
ff.;Birsl,in: Birsl (Hrsg.),Rechtsextremismus und 
Gender,2011,S. 11 ff.;Rommelspacher,in: Birsl 
(Hrsg.),Rechtsextremismus und Gender,2011,S. 43 
ff.;Klärner/Kohlstruck,in: Klärner/Kohlstruck 
(Hrsg.),Moderner Rechtsextremismus in Deutschland,2006, S. 
26;Jaschke,Rechtsextremismus und Fremdenfeindlichkeit,2. 
Aufl.2001,S. 116 ff.;Butterwegge, 
Rechtsextremismus,Rassismus und Gewalt,1996,S. 106 ff."""

response = openai.Completion.create(
    model="text-davinci-003",
    prompt=instruction+text_to_parse,
    temperature=0,
    max_tokens=3000,
    top_p=1.0,
    frequency_penalty=0.0,
    presence_penalty=0.0
)

end = time.time()
total_time = end - start

json_response = response['choices'][0]['text']
csl_refs = json.loads(json_response)
print(f"{len(csl_refs)} references were extracted in {str(total_time)} seconds")
csl_refs

Result

15 references were extracted in 57.68000245094299 seconds
[{'id': 'Pusch1984',
  'type': 'book',
  'author': [{'family': 'Pusch', 'given': ''}],
  'title': 'Das Deutsche als Männersprache',
  'publisher': '',
  'publisher-place': '',
  'issued': {'date-parts': [[1984]]}},
 {'id': 'Trömel-Plötz1983',
  'type': 'chapter',
  'author': [{'family': 'Trömel-Plötz', 'given': ''}],
  'editor': [{'family': 'Pusch', 'given': ''}],
  'title': 'Inspektion der Herrenkultur',
  'container-title': '',
  'publisher': '',
  'publisher-place': '',
  'issued': {'date-parts': [[1983]]}},
 {'id': 'HessischenMinisteriumsderJustiz1992',
  'type': 'article-journal',
  'author': [{'family': 'Hessischen Ministeriums der Justiz', 'given': ''}],
  'title': 'Richtlinien zur Gleichbehandlung von Frauen und Männern in der Vorschriftensprache',
  'container-title': 'StAnz',
  'volume': '9',
  'page': '538-',
  'publisher': '',
  'publisher-place': '',
  'issued': {'date-parts': [[1992]]}},
 {'id': 'Bundesrat2017',
  'type': 'article-journal',
  'author': [{'family': 'Bundesrat', 'given': ''}],
  'title': 'Entschließung',
  'container-title': 'BR-Drs',
  'volume': '362',
  'page': '17',
  'publisher': '',
  'publisher-place': '',
  'issued': {'date-parts': [[2017, 5, 4]]}},
 {'id': 'BVerfG2017',
  'type': 'article-journal',
  'author': [{'family': 'BVerfG', 'given': ''}],
  'title': 'Beschluss zum Personenstandsrecht',
  'container-title': 'NJW',
  'volume': '2017',
  'page': '3643-3647',
  'publisher': '',
  'publisher-place': '',
  'issued': {'date-parts': [[2017]]}},
 {'id': 'Hermann2003',
  'type': 'article-journal',
  'author': [{'family': 'Hermann', 'given': ''}],
  'title': 'arranca!',
  'container-title': 'arranca!',
  'volume': '28',
  'page': '22',
  'publisher': '',
  'publisher-place': '',
  'issued': {'date-parts': [[2003]]}},
 {'id': 'Rienhoff2016',
  'type': 'book',
  'author': [{'family': 'Rienhoff', 'given': ''}],
  'title': 'Präventionsarbeit im sozialen Brennpunkt',
  'publisher': '',
  'publisher-place': '',
  'issued': {'date-parts': [[2016]]}},
 {'id': 'HäuslerKellershohn2018',
  'type': 'chapter',
  'author': [{'family': 'Lang', 'given': ''}],
  'editor': [{'family': 'Häusler', 'given': ''},
   {'family': 'Kellershohn', 'given': ''}],
  'title': 'Das Gesicht des völkischen Populismus',
  'container-title': '',
  'publisher': '',
  'publisher-place': '',
  'issued': {'date-parts': [[2018]]}},
 {'id': 'Virchow2016',
  'type': 'chapter',
  'author': [{'family': 'Bitzan', 'given': ''}],
  'editor': [{'family': 'Virchow', 'given': ''}],
  'title': 'Handbuch Rechtsextremismus',
  'container-title': '',
  'publisher': '',
  'publisher-place': '',
  'issued': {'date-parts': [[2016]]}},
 {'id': 'Braun2016',
  'type': 'chapter',
  'author': [{'family': 'Esen', 'given': ''}],
  'editor': [{'family': 'Braun', 'given': ''}],
  'title': 'Strategien der extremen Rechten',
  'container-title': '',
  'publisher': '',
  'publisher-place': '',
  'issued': {'date-parts': [[2016]]}},
 {'id': 'Birsl2011',
  'type': 'chapter',
  'author': [{'family': 'Birsl', 'given': ''}],
  'editor': [{'family': 'Birsl', 'given': ''}],
  'title': 'Rechtsextremismus und Gender',
  'container-title': '',
  'publisher': '',
  'publisher-place': '',
  'issued': {'date-parts': [[2011]]}},
 {'id': 'Rommelspacher2011',
  'type': 'chapter',
  'author': [{'family': 'Rommelspacher', 'given': ''}],
  'editor': [{'family': 'Birsl', 'given': ''}],
  'title': 'Rechtsextremismus und Gender',
  'container-title': '',
  'publisher': '',
  'publisher-place': '',
  'issued': {'date-parts': [[2011]]}},
 {'id': 'KlärnerKohlstruck2006',
  'type': 'chapter',
  'author': [{'family': 'Klärner', 'given': ''},
   {'family': 'Kohlstruck', 'given': ''}],
  'editor': [{'family': 'Klärner', 'given': ''},
   {'family': 'Kohlstruck', 'given': ''}],
  'title': 'Moderner Rechtsextremismus in Deutschland',
  'container-title': '',
  'publisher': '',
  'publisher-place': '',
  'issued': {'date-parts': [[2006]]}},
 {'id': 'Jaschke2001',
  'type': 'book',
  'author': [{'family': 'Jaschke', 'given': ''}],
  'title': 'Rechtsextremismus und Fremdenfeindlichkeit',
  'publisher': '',
  'publisher-place': '',
  'edition': '2',
  'issued': {'date-parts': [[2001]]}},
 {'id': 'Butterwegge1996',
  'type': 'book',
  'author': [{'family': 'Butterwegge', 'given': ''}],
  'title': 'Rechtsextremismus, Rassismus und Gewalt',
  'publisher': '',
  'publisher-place': '',
  'issued': {'date-parts': [[1996]]}}]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment