Regex-Vervollständigung und -Erläuterung

Implementieren Sie eine reguläre Ausdrucksbasierte Satzaufteilung für die Funktionsvervollständigung.

Sie können ein Modell direkt abfragen und die zurückgegebenen Ergebnisse testen, wenn Sie verschiedene Parameterwerte mit der Cloud Console oder durch direkten Aufruf der Vertex AI API verwenden.

Systemanweisungen

Fügen Sie am Ende Ihrer Antwort eine Zusammenfassung der Funktionsweise des Codes und der von Ihnen vorgenommenen Fehlerkorrekturen hinzu. Jede Erklärung sollte nicht mehr als zwei Sätze lang sein.

Freeform-Prompt

Ich wurde gebeten, die Arbeit an dieser Funktion fertigzustellen, die Sätze in eine Liste aufteilt. Leider wurde mir ausdrücklich gesagt, dass ich dafür reguläre Ausdrücke verwenden soll. Die zusätzlichen Anforderungen werden in der Docstring der Funktion erläutert. Reguläre Ausdrücke sind selbst im besten Fall eine Qual. Könnten Sie diesen Code für mich fertigstellen? Alles, was Sie benötigen, sollte sich im Snippet befinden.

import re

def splitSentences(sentences):
  """
  Splits a string of sentences into a list.
  Each sentence is period-separated, save for cases where
  the phrases "Mr." or "Ms." are used, since those
  don't end a sentence.
  """
  sentenceList = []

  # missing code here

  return sentenceList

Antwort

import re

def splitSentences(sentences):
  """
  Splits a string of sentences into a list.
  Each sentence is period-separated, save for cases where
  the phrases "Mr." or "Ms." are used, since those
  don't end a sentence.
  """
  sentenceList = []
  sentenceEnders = r'(?<!Mr)\.(?<![A-Z][a-z]\.)(?<![A-Z][a-z][a-z]\.)(?<=\.|\?)\s'
  sentenceList = re.split(sentenceEnders, sentences)
  return sentenceList

Zusammenfassung: Der Code teilt einen String mithilfe von regulären Ausdrücken in eine Liste von Sätzen auf. Der reguläre Ausdruck wurde korrigiert, um Satzenden korrekt zu erkennen und dabei Abkürzungen wie „Herr“ und „Frau“ auszuschließen.

Modell: gemini-1.5-flash-002
Temperatur: 0,2
Max. Ausgabetokens: 8.192
TopK: 40,0
TopP: 0,95