NLTK
NLTK(Natural Language Toolkit)是 Python 自然语言处理库,提供分词、词性标注、句法分析等工具。
官网:https://www.nltk.org/
核心功能
| 功能 | 说明 |
|---|
| 分词 | 将文本切分为单词或句子 |
| 词性标注 | 为单词分配词性标签 |
| 词干提取 | 还原词汇到词干 |
| 词形还原 | 还原词汇到标准词形 |
| 句法分析 | 分析句子结构 |
| 语义分析 | 基于 WordNet 分析词义 |
示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| 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'
|
机器学习分类
1
2
3
4
5
6
7
| 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!")))
|
核心原理
- 数据预处理:分词、标注、词形还原
- 规则与统计:结合规则方法和统计模型
- 机器学习:支持 Naive Bayes、Decision Tree 等分类器
- 语言资源:内置 WordNet、Treebank 等
Comments