nltk lib use
简介
NLTK(Natural Language Toolkit,中文叫做自然语言工具包)是一个用于处理和分析人类语言数据(自然语言)的Python库。它为自然语言处理(NLP)提供了许多有用的工具和资源,广泛用于学术研究、机器学习、文本分析等领域。
安装使用
1 |
|
安装资源
1 | import nltk |
功能
文本处理和标记化(Tokenization):
- 将文本分解为更小的单位,如单词、句子等。例如,把一句话分成单词列表。
1
2
3
4
5import nltk
from nltk.tokenize import word_tokenize
text = "Hello, world!"
words = word_tokenize(text)
print(words) # 输出: ['Hello', ',', 'world', '!']
- 将文本分解为更小的单位,如单词、句子等。例如,把一句话分成单词列表。
词性标注(POS Tagging):
- 给每个单词打上一个词性标签(如名词、动词、形容词等),帮助理解单词在句中的语法作用。
1
2
3
4
5
6
7from nltk.tokenize import word_tokenize
from nltk import pos_tag
sentence = "I am learning Python."
words = word_tokenize(sentence)
tagged = pos_tag(words)
print(tagged)
# 输出: [('I', 'PRP'), ('am', 'VBP'), ('learning', 'VBG'), ('Python', 'NNP')]
- 给每个单词打上一个词性标签(如名词、动词、形容词等),帮助理解单词在句中的语法作用。
命名实体识别(NER, Named Entity Recognition):
- NLTK能够识别文本中的命名实体,如人名、地名、组织名等。
1
2
3
4
5
6
7
8
9
10from nltk import ne_chunk
from nltk.tokenize import word_tokenize
from nltk import pos_tag
sentence = "Barack Obama was born in Hawaii."
words = word_tokenize(sentence)
tagged = pos_tag(words)
named_entities = ne_chunk(tagged)
print(named_entities)
# 输出: (S (PERSON Barack/NNP Obama/NNP) was/VBD born/VBN in/IN Hawaii/NNP ./.)
- NLTK能够识别文本中的命名实体,如人名、地名、组织名等。
词汇和语料库(Corpora):
- NLTK提供了许多内置的语料库(corpora),这些语料库包含大量的文本数据,可以用于语言模型训练、文本分析等。例如,
punkt
语料库用于句子分割,stopwords
语料库提供了常见的停用词(如“the”,“is”等),可以在文本处理时忽略这些词。1
2
3from nltk.corpus import stopwords
stop_words = set(stopwords.words('english'))
print(stop_words) # 输出: {'the', 'and', 'is', 'in', 'of', 'to', ...}
- NLTK提供了许多内置的语料库(corpora),这些语料库包含大量的文本数据,可以用于语言模型训练、文本分析等。例如,
词干提取(Stemming)和词形还原(Lemmatization):
- 这两个技术用于将单词还原为其基础形式(如将“running”变为“run”)。
- 词干提取(Stemming)是通过简单的规则来去除词尾,而词形还原(Lemmatization)则考虑上下文,使用字典和规则。
1
2
3from nltk.stem import PorterStemmer
stemmer = PorterStemmer()
print(stemmer.stem("running")) # 输出: run
文本分类(Text Classification):
- NLTK支持构建和训练文本分类器,适用于垃圾邮件分类、情感分析等任务。
句法分析(Parsing):
- NLTK支持各种句法分析技术,包括上下文无关文法(CFG)和依存句法分析,帮助理解句子的结构。
机器翻译和词向量(Word Embeddings):
- NLTK也可以与其他库(如Gensim)结合,用于词向量模型和机器翻译等任务。
demo
1 | import nltk |