2017-03-23 4 views
-3

J'ai du texte qui ressemble à ceci: -Comment puis-je identifier des phrases dans un texte?

"I am an engineer. I am skilled in ASP.NET. I also know Node.js.But I don't have much experience. " 

Ici, « ASP.NET » et « Node.js » doivent être traités comme des mots. De plus, il n'y a pas d'espace avant "Mais je ...", mais cela devrait être traité comme une phrase séparée.

Le résultat attendu est:

["I am an engineer"," I am skilled in ASP.NET","I also know Node.js","But I don't have much experience"] 

Est-il possible de le faire?

+0

Utilisez NLTK ou tout autre package PNL pour fractionner des paragraphes arbitraires en phrases. Regex n'est pas le meilleur outil pour cela. Sauf si vous avez des commentaires très spécifiques. –

Répondre

0

Pour votre entrée actuelle, vous pouvez utiliser l'approche suivante avec la fonction re.split() et modèle de regex spécifique:

import re 

s = "I am an engineer. I am skilled in ASP.NET. I also know Node.js.But I don't have much experience. " 
result = re.split(r'\.(?=\s?[A-Z][^.]*?)', s) 

print(result) 

La sortie:

['I am an engineer', ' I am skilled in ASP.NET', ' I also know Node.js', "But I don't have much experience. "] 

(?=\s?[A-Z][^.]*?) - affirmation positif préanalyse, veille à ce que délimiteur de phrase . est suivi du mot de la phrase suivante