NLTK

NLTK(Natural Language Toolkit)是 Python 自然语言处理库,提供分词、词性标注、句法分析等工具。

官网:https://www.nltk.org/

核心功能

功能说明
分词将文本切分为单词或句子
词性标注为单词分配词性标签
词干提取还原词汇到词干
词形还原还原词汇到标准词形
句法分析分析句子结构
语义分析基于 WordNet 分析词义

示例

from nltk.tokenize import word_tokenize
from nltk import pos_tag
from nltk.stem import PorterStemmer, WordNetLemmatizer
 
# 分词
tokens = word_tokenize("NLTK is great for text analysis.")
 
# 词性标注
tagged = pos_tag(tokens)
 
# 词干提取
stemmer = PorterStemmer()
stemmer.stem("running")  # 'run'
 
# 词形还原
lemmatizer = WordNetLemmatizer()
lemmatizer.lemmatize("running", pos='v')  # 'run'

机器学习分类

from nltk.classify import NaiveBayesClassifier
 
def extract_features(words):
    return dict([(word, True) for word in words])
 
classifier = NaiveBayesClassifier.train(train_data)
classifier.classify(extract_features(word_tokenize("Great movie!")))

核心原理

  1. 数据预处理:分词、标注、词形还原
  2. 规则与统计:结合规则方法和统计模型
  3. 机器学习:支持 Naive Bayes、Decision Tree 等分类器
  4. 语言资源:内置 WordNet、Treebank 等