NLTK(Natural Language Toolkit)是一個流行的Python套件,專門用於處理自然語言處理(NLP)任務。它提供了各種工具和資源,幫助開發者進行文本分析、語言處理和機器學習等任務。
NLTK 主要專注於英文語言處理,可以使用其他工具庫如 Jieba 來實現中文分詞。
pip install nltk
nltk.download()
nltk.download()
是 NLTK 中用來下載和更新資料庫、資源和語料庫的函式。
from nltk.tokenize import word_tokenize # 引入 NLTK 的分詞模組輸出:
text = "NLTK is a powerful tool for natural language processing." # 原始文本
tokens = word_tokenize(text) # 使用 word_tokenize 函數將文本進行分詞,得到 tokens
print(tokens) # 輸出分詞後的 tokens
['NLTK', 'is', 'a', 'powerful', 'tool', 'for', 'natural', 'language', 'processing', '.']
from nltk.corpus import stopwords # 引入 NLTK 的停用詞庫模組輸出:
from nltk.tokenize import word_tokenize # 引入 NLTK 的分詞模組
text = "NLTK is a powerful tool for natural language processing." # 原始文本
tokens = word_tokenize(text) # 將文本進行分詞,得到 tokens
stopwords_list = set(stopwords.words('english')) # 使用 NLTK 提供的英文停用詞列表
filtered_tokens = [word for word in tokens if word.lower() not in stopwords_list] # 過濾掉文本中的停用詞
print(filtered_tokens) # 輸出過濾後的 tokens
['NLTK', 'powerful', 'tool', 'natural', 'language', 'processing', '.']
from nltk import pos_tag # 引入 NLTK 的詞性標註模組輸出:
from nltk.tokenize import word_tokenize # 引入 NLTK 的分詞模組
text = "NLTK is a powerful tool for natural language processing." # 原始文本
tokens = word_tokenize(text) # 將文本進行分詞,得到 tokens
pos_tags = pos_tag(tokens) # 對 tokens 進行詞性標註,得到 pos_tags
print(pos_tags) # 輸出詞性標註結果
[('NLTK', 'NNP'), ('is', 'VBZ'), ('a', 'DT'), ('powerful', 'JJ'), ('tool', 'NN'), ('for', 'IN'), ('natural', 'JJ'), ('language', 'NN'), ('processing', 'NN'), ('.', '.')]
這些詞性標註能夠幫助理解每個詞在句子中的語法角色和功能,進而進行更深入的語言分析和處理。
from nltk import ne_chunk # 引入 NLTK 的命名實體識別模組輸出:
from nltk.tokenize import word_tokenize # 引入 NLTK 的分詞模組
from nltk.tag import pos_tag # 引入 NLTK 的詞性標註模組
# 原始文本
text = "Barack Obama was born in Hawaii."
# 將文本進行分詞,得到 tokens
tokens = word_tokenize(text)
# 對 tokens 進行詞性標註,得到 pos_tags
pos_tags = pos_tag(tokens)
# 使用命名實體識別器對 pos_tags 進行命名實體識別,得到 ner_tags
ner_tags = ne_chunk(pos_tags)
# 輸出識別結果
print(ner_tags)
(S
(PERSON Barack/NNP Obama/NNP)
was/VBD
born/VBN
in/IN
(GPE Hawaii/NNP)
./.)