Problème :Obtenir une liste de phrases à partir d'un fichier texte fourni, tenant compte de la complexité de langage, comme les points utilisés dans les abréviations et les chiffres.
Régulier inefficace Expression :
re.compile('(\. |^|!|\?)([A-Z][^;↑\.<>@\^&/\[\]]*(\.|!|\?) )',re.M)
Solution utilisant la boîte à outils de langage naturel (NLTK) :
NLTK fournit une solution robuste pour la tokenisation des phrases, comme le démontre le code suivant :
import nltk.data # Load the English sentence tokenizer tokenizer = nltk.data.load('tokenizers/punkt/english.pickle') # Read the text file with open("test.txt") as fp: data = fp.read() # Tokenize the text into sentences sentences = tokenizer.tokenize(data) # Print the tokenized sentences, separated by newlines print('\n-----\n'.join(sentences))
Avantages du NLTK Solution :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!