Problem: Erhalten Sie eine Liste von Sätzen aus einer bereitgestellten Textdatei und berücksichtigen Sie dabei die Komplexität von Sprache, wie etwa in Abkürzungen und Ziffern verwendete Punkte.
Ineffiziente Regelmäßigkeit Ausdruck:
re.compile('(\. |^|!|\?)([A-Z][^;↑\.<>@\^&/\[\]]*(\.|!|\?) )',re.M)
Lösung mit Natural Language Toolkit (NLTK):
NLTK bietet eine robuste Lösung für die Satz-Tokenisierung, wie durch den folgenden Code demonstriert :
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))
Vorteile von NLTK Lösung:
Das obige ist der detaillierte Inhalt vonWie kann NLTK effizient Sätze aus Texten extrahieren und dabei komplexe sprachliche Nuancen verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!