问题:从提供的文本文件中获取句子列表,考虑到以下内容的复杂性语言,例如缩写和数字中使用的句点。
低效正则表达式:
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中文网其他相关文章!