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 valori di parametro diversi con la console Cloud o richiamando direttamente l'API Vertex AI.

Istruzioni di sistema

Includi un riepilogo della funzionalità del codice e delle correzioni apportate alla fine della risposta. Ogni spiegazione non deve contenere più 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. La regex è stata corretta per identificare con precisione le terminazioni delle frasi, escludendo al contempo le abbreviazioni come "Sig." e "Sig.ra".

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