0
votes

Comment scinder le texte en phrases lorsque mon texte a de nombreuses points entre les phrases entre les phrases?

Les exigences sont:

  1. Démarrage des phrases doit être un mot avec sa première lettre des capitales (comme, le, dans) seulement et la fin de la phrase devrait être un point.
    Par exemple:

    entrée: "C'est un nouveau livre. J'aime lire ce livre"

    Sortie attendue: ['C'est un nouveau livre.' , 'J'aime lire ce livre']

  2. Cependant, s'il y a une citation présente à la fin de la phrase, il devrait être inclus dans la phrase. Dans ce cas, le point peut être après la citation (ou) avant et après la citation.

    EG:

    entrée: "C'est un nouveau livre. (Steve et Rasol 2014). J'aime lire ce livre (Rashi & Shabana 2015)."

    Sortie attendue: ['C'est un nouveau livre. (Steve et Rasol 2014)', 'J'aime lire ce livre (Rashi & Shabana 2015).']


2 commentaires

Qu'est-ce que tu as essayé jusque-là?


r '\ w. + (\ w. + \ d {4}) '- Ce modèle a fonctionné pour moi.


3 Réponses :


0
votes

Étant donné que les données que vous avez répertoriées sont séparées par . Vous pouvez diviser les données en une matrice avec array = data.split ('.') commande. De plus, pour ajouter . à la fin de chaque élément, vous pouvez itérer sur le tableau et vérifier si . existe à la fin s'il ne l'appends pas.


0 commentaires

1
votes

Vous pouvez utiliser cette regex: xxx

edit

Vous pouvez utiliser cette regex optimisée xxx < / Pré>

  • [a-z] Les phrases commencent par la lettre majuscule
  • (. | \ n) *? Les phrases peuvent avoir tous les caractères ou nouvelle ligne
  • \. Les sensibles se terminent par le point ...
  • (?! \ () ... et n'ont pas de parentés "(" après

    Utilisez ce site pour tester: https://regexr.com/

    Exemple Java xxx


0 commentaires

0
votes
['This is a new book(Steve and Rasol 2014)', 'I like to read this book (Rashi & Shabana 2015).']

1 commentaires

Votre code ne fera pas ce que l'OP demande dans la question. I.e. 'C'est un nouveau livre. (Steve et Rasol 2014)' serait mal divisé en deux chaînes.