张芷铭的个人博客

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!")))

核心原理

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

Comments