话说那些年我用Nltk踩过的坑
有一说一, 自然语言处理 这玩意儿可不是个简单活。要是没有现成的工具库,光是分词就够你喝一壶的。还好Python有个叫 NLTK 的神器,帮我们搞定了不少麻烦事。
1.
装个NLTK有点费劲
import nltk
nltk.download('punkt') # 分词用的
nltk.download('averaged_perceptron_tagger') # 词性标注
nltk.download('stopwords') # 停用词
装完库还不够,这几个数据包也得下载,不然分分钟给你报错。不过也就第一次麻烦点,后面就舒服了。
2.
分词玩起来
from nltk.tokenize import word_tokenize
text = “Python真是太好玩了!自然语言处理太有意思了。”
tokens = word_tokenize(text)
print(tokens)
温馨提示:中文分词可得用jieba,NLTK主要是英文好使。
3.
去掉那些没用的词
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
text = “I am learning Python and it is fun”
stop_words = set(stopwords.words('english'))
tokens = word_tokenize(text)
filtered = [w for w in tokens if w not in stop_words]
print(filtered)
停用词就像个垃圾过滤器,把“is”、“am”这种水分词给删掉,剩下有营养的。
4.
给词打个标签
from nltk.tag import pos_tag
text = “Python is amazing”
tokens = word_tokenize(text)
tagged = pos_tag(tokens)
print(tagged) # 输出带词性标注的结果
词性标注可有意思了,能看出来哪些是名词(NN),哪些是动词(VB)。写个情感分析啥的特别好使。
5.
数一数词频
from nltk import FreqDist
text = “Python Python Python NLP NLP testing”
fdist = FreqDist(word_tokenize(text))
print(fdist.most_common(2)) # 看看最常见的两个词
统计词频就跟查户口似的,谁出现得多一目了然。
写爬虫的时候配上这些招儿,文本分析不要太溜。关键是NLTK上手快,不用自己造轮子,这工具是真顶。
领取专属 10元无门槛券
私享最新 技术干货