Completamento e spiegazione di Regex

Implementa la suddivisione delle frasi basata su regex per il completamento delle funzioni.

Puoi eseguire query direttamente su un modello e testare i risultati restituiti quando utilizzi i diversi valori dei parametri con la console Cloud o chiamando il metodo l'API Vertex AI in modo diretto.

Istruzioni di sistema

Alla fine della risposta includi un TLDR della funzione del codice e delle correzioni apportate. Ogni spiegazione non deve essere più lunga di due frasi.

Prompt In formato libero

Mi è stato chiesto di completare il lavoro su questa funzione che suddivide le frasi in un elenco. Purtroppo, mi è stato detto specificamente di utilizzare le espressioni regolari per questo, con requisiti aggiuntivi spiegati nella docstring della funzione. Le espressioni regolari sono un problema anche nelle migliori condizioni. Potresti completare questo codice per me? Tutto ciò che ti serve dovrebbe trovarsi all'interno dello snippet.

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

Risposta

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

TLDR: il codice suddivide una stringa in un elenco di frasi utilizzando le espressioni regolari. L'espressione regolare è stata corretta per identificare con precisione i finali di frase escludendo abbreviazioni come "Sig." e "Ms.".

Modello: gemini-1.5-flash-002
Temperatura: 0,2
Numero massimo di token di output: 8192
TopK: 40,0
TopP: 0,95