PythonとJanomeで始める!日本語形態素解析と分かち書き入門
この記事では、Pythonの形態素解析ライブラリJanomeを使って、日本語の文章を単語に分割する「分かち書き」について解説します。自然言語処理の基礎となる形態素解析は、日本語の文章を理解し、分析するために不可欠な技術です。
形態素解析とは?
形態素解析とは、文章を意味を持つ最小単位の「形態素」に分割する分析手法です。例えば、「私は猫が好きです」という文章は、「私」「は」「猫」「が」「好き」「です」という形態素に分けられます。日本語は単語の区切りが曖昧なため、形態素解析は文章の構造を把握する上で非常に重要です。
分かち書きとは?
分かち書きは、形態素解析の結果として得られる単語の羅列です。文章を単語ごとに区切って表示することで、テキストデータの前処理や分析が容易になります。
Janomeとは?
Janomeは、純Pythonで書かれた日本語の形態素解析ライブラリです。MeCabなどの外部ライブラリを必要とせず、手軽に利用できるのが特徴です。シンプルなAPIで、初心者でも簡単に形態素解析を行うことができます。
Janomeのインストール方法
Janomeはpipを使って簡単にインストールできます。
pip install janome
Janomeを使った形態素解析と分かち書きの基本
Janomeを使って形態素解析と分かち書きを行う基本的な手順を説明します。
Tokenizerの利用
Janomeで形態素解析を行うには、Tokenizer
クラスを使用します。
from janome.tokenizer import Tokenizer
t = Tokenizer()
text = "すもももももももものうち"
for token in t.tokenize(text):
print(token)
上記のコードを実行すると、以下のように形態素の情報が出力されます。
すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
分かち書き(単語分割)の例
分かち書きだけを行う場合は、wakati
メソッドを使用すると便利です。
from janome.tokenizer import Tokenizer
t = Tokenizer()
text = "Pythonで日本語の形態素解析を学ぶ"
wakati_words = t.wakati(text)
print(" ".join(wakati_words))
実行結果は以下のようになります。
Python で 日本語 の 形態素 解析 を 学ぶ
形態素情報の活用
tokenize
メソッドで得られるToken
オブジェクトには、単語の表層形だけでなく、品詞や読みなどの詳細な形態素情報が含まれています。これらの情報を活用することで、より高度なテキスト分析が可能になります。
品詞情報の抽出
例えば、名詞だけを抽出したい場合は以下のように記述します。
from janome.tokenizer import Tokenizer
t = Tokenizer()
text = "私の趣味は読書とプログラミングです。"
nouns = []
for token in t.tokenize(text):
if token.part_of_speech.startswith('名詞'):
nouns.append(token.surface)
print(nouns)
実行結果:
['私', '趣味', '読書', 'プログラミング']
まとめ
Janomeを使うことで、Pythonから手軽に日本語の形態素解析や分かち書きを行うことができます。これらの技術は、テキストマイニング、自然言語処理、情報検索など、様々な分野で活用されています。ぜひJanomeを使って、日本語テキストデータの分析に挑戦してみてください。
■プロンプトだけでオリジナルアプリを開発・公開してみた!!
■AI時代の第一歩!「AI駆動開発コース」はじめました!
テックジム東京本校で先行開始。
■テックジム東京本校
「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。
<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。
<月1開催>放送作家による映像ディレクター養成講座
<オンライン無料>ゼロから始めるPython爆速講座