chatgpt-sentiment-simple

textmining
nlp
transformer
chatgpt
sentiment
Published

December 6, 2023

Aufgabe

Fragen Sie ChatGPT via API zum Sentiment des ersten Texts aus dem Germeval-2018-Datensatz (Train).

Hinweise:

  • Beachten Sie die Standardhinweise des Datenwerks.
  • Nutzen Sie Python, nicht R.
  • Das Verwenden der OpenAI-API kostet Geld. 💸 Informieren Sie sich vorab. Um auf die API zugreifen zu können, müssen Sie sich ein Konto angelegt haben und über ein Guthaben verfügen.











Lösung

OpenAI hat eine neue API (Stand: 2023-11-23). Der Code der alten API bricht. 💔 \(\square\)

Module importieren:

from openai import OpenAI

Anmelden bei OpenAI:

client = OpenAI()
Note

Dieses Verfahren setzt voraus, dass in .Renviron die Variable OPENAI_API_KEY hinterlegt ist. \(\square\)

Textschnipsel, das zu klassifizieren ist:

text = "@corinnamilborn Liebe Corinna, wir würden dich gerne als Moderatorin für uns gewinnen! Wärst du begeisterbar?"

Prompt definieren:

my_prompt  = f"Analysieren Sie das Sentiment des folgenden Texts:\n{text}"

Anfrage an die API, in eine Funktion gepackt:

def get_completion(prompt, client_instance, model="gpt-3.5-turbo"):
  messages = [{"role": "user", "content": prompt}]
  response = client_instance.chat.completions.create(
  model=model,
  messages=messages,
  max_tokens=50,
  temperature=0,
  )
  return response.choices[0].message.content

Und los:

get_completion(my_prompt, client) 
'Basierend auf dem gegebenen Text kann das Sentiment als positiv eingestuft werden. Der Text drückt Interesse und Begeisterung aus, indem er Corinna Milborn als Moderatorin gewinnen möchte.'