問題:從提供的文本文件中獲取句子列表,考慮到以下內容的複雜性語言,例如縮寫和數字中使用的句點。
低效正則表達式:
re.compile('(\. |^|!|\?)([A-Z][^;↑\.<>@\^&/\[\]]*(\.|!|\?) )',re.M)
使用自然語言工具包(NLTK)的解:
NLTK為句子標記化提供了強大的解決方案,如以下程式碼所示:
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))
NLTK 的好處解決方案:
以上是NLTK 如何有效地從文本中提取句子,處理複雜的語言細微差別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!