Explication et saisie automatique de l'expression régulière

Implémentez la division des phrases basée sur des expressions régulières pour la saisie automatique de fonction.

Vous pouvez interroger un modèle directement et tester les résultats renvoyés lors de l'utilisation de différentes valeurs de paramètre en utilisant la console Cloud ou en appelant directement l'API Vertex AI.

Instructions système

Incluez un résumé de ce que fait le code et des corrections que vous avez apportées à la fin de votre réponse. Chaque explication ne doit pas dépasser deux phrases.

Requête Freeform

On m'a demandé de terminer le travail sur cette fonction qui divise les phrases en une liste. Malheureusement, on m'a spécifiquement demandé d'utiliser des expressions régulières pour cela, avec des exigences supplémentaires expliquées dans le docstring de la fonction. Les expressions régulières sont difficiles à comprendre. Pourriez-vous terminer ce code pour moi ? Toutes les informations dont vous avez besoin se trouvent dans l'extrait.

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

Réponse

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

Résumé : Le code divise une chaîne en une liste de phrases à l'aide d'expressions régulières. L'expression régulière a été corrigée pour identifier précisément les fins de phrases tout en excluant les abréviations telles que "M." et "Mme".

Modèle : gemini-1.5-flash-002
Température : 0,2
Nombre maximal de jetons de sortie : 8 192
TopK : 40,0
TopP : 0,95