Python nltk ライブラリ完全ガイド

Python の nltk (自然言語処理ツールキット) は、文本解析に最適なライブラリです。文章分割、単語分割、哲学解析、木構造構文解析などが可能です。
1. nltk ライブラリの概要
インストール方法
pip install nltk
2. 主な機能と使用例
(1) コーパスの読み込み
import nltk nltk.download('punkt') nltk.download('averaged_perceptron_tagger')
(2) 文を文章分割
from nltk.tokenize import sent_tokenize text = "NLTK is a powerful toolkit. It is widely used." print(sent_tokenize(text))
(3) 単語分割 (Tokenize)
from nltk.tokenize import word_tokenize print(word_tokenize(text))
(4) 哲学解析 (POS tagging)
from nltk import pos_tag words = word_tokenize("Natural Language Toolkit") print(pos_tag(words))
(5) ステミング (語尾分削)
from nltk.stem import PorterStemmer stemmer = PorterStemmer() print(stemmer.stem("running"))
(6) レマティゼーション
from nltk.stem import WordNetLemmatizer nltk.download('wordnet') lemmatizer = WordNetLemmatizer() print(lemmatizer.lemmatize("better", pos="a"))
(7) ストップワードの除去
from nltk.corpus import stopwords nltk.download('stopwords') stop_words = set(stopwords.words("english")) print([w for w in word_tokenize("This is a test.") if w not in stop_words])
(8) N-gram 抽出
from nltk import ngrams sentence = "This is a simple sentence" print(list(ngrams(word_tokenize(sentence), 2)))
(9) 例題の分類
from nltk import NaiveBayesClassifier train = [(dict(hungry=True), 'yes'), (dict(hungry=False), 'no')] classifier = NaiveBayesClassifier.train(train) print(classifier.classify(dict(hungry=True)))
(10) 木構造解析
grammar = """ NP: {<DT>?<JJ>*<NN>} VP: {<VB.*><NP|PP|CLAUSE>+$} PP: {<IN><NP>} CLAUSE: {<NP><VP>} """ cp = nltk.RegexpParser(grammar) tree = cp.parse(pos_tag(word_tokenize("The quick brown fox jumps over the lazy dog"))) tree.draw()
3. nltk の主な機能
| 機能 | 説明 |
|---|---|
| Tokenize | 文章分割や単語分割を行う |
| POS Tagging | 語類分析 (名詞、動詞 等) |
| Stopwords | 意味の少ない言語の除去 |
| Stemming | 単語を根語に変換 |
| Lemmatization | 語尾の正規化 |
まとめ
nltk は自然言語処理のエントリーレベルライブラリです。
文章解析やテキスト分類、簡易検索エンジンを作成したい場面で最適です 🚀