如何使用NLTK按单词而非句子分词?附现有分句代码
用NLTK实现按单词分词的方法
嘿,刚好我熟这个~你之前用的sent_tokenize是用来拆分句子的,要按单词分词的话,换成NLTK里的word_tokenize就可以啦,我给你整理好完整代码:
首先,第一次使用NLTK分词需要先下载对应的语料库(之后再运行就可以注释掉这行啦),然后替换分词函数就行:
import nltk # 首次运行需下载分词依赖的语料,运行一次后可注释 nltk.download('punkt') text = " Hi how are you, how is live, what are you doing " from nltk.tokenize import word_tokenize # 执行单词分词操作 word_tokens = word_tokenize(text) print(word_tokens)
运行这段代码后,你会得到这样的输出:
['Hi', 'how', 'are', 'you', ',', 'how', 'is', 'live', ',', 'what', 'are', 'you', 'doing']
可以看到NLTK会把标点符号也单独作为一个分词元素,如果想过滤掉这些非单词的内容,比如只保留纯字母的单词,可以加个简单的列表推导式过滤:
# 过滤标点和非字母元素 filtered_tokens = [token for token in word_tokens if token.isalpha()] print(filtered_tokens)
这时候输出就是干净的单词列表啦:
['Hi', 'how', 'are', 'you', 'how', 'is', 'live', 'what', 'are', 'you', 'doing']
内容的提问来源于stack exchange,提问作者user9569650
相关产品推荐
相关产品推荐

