日本語処理のためには、文章を単語に分解する必要があります。単語に分解することをわかち書きといいます。
本パートでは、janomeという形態素(けいたいそ)解析のライブラリーを使います。
※「通常の文章を形態素に分解して品詞等を判別すること」を形態素解析といいます。形態素とは「言葉として意味のある最小の単位」です。
写経して文章をわかち書きしてみましょう。わかち書きにはjanome.tokenizerのTokenizerを使います
from janome.tokenizer import Tokenizer
text = 'オリンピックを日本でします'
tokenizer = Tokenizer()
tokens = tokenizer.tokenize(text)
for token in tokens:
print(token)
オリンピック 名詞,一般,*,*,*,*,オリンピック,オリンピック,オリンピック
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
日本 名詞,固有名詞,地域,国,*,*,日本,ニッポン,ニッポン
で 助詞,格助詞,一般,*,*,*,で,デ,デ
し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
ます 助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス
janomeのTokenizer
を使ってわかち書きしましょう。
tokenizer = Tokenizer()
で、Tokenizerを作成します。tokenizer.tokenize(文章)
で、Tokenのリストを取得します。
Tokenをprint
するとTokenのメンバーが出力されます。
名前 | 説明 | 「し(ます)」の例 |
---|---|---|
surface | 表層形 | し |
base_form | 基本形 | する |
part_of_speech | 品詞 | 動詞,自立,*,* |
reading | 読み | シ |
「し(ます)」の「し」で確認しましょう。
- 表層形は、表示通りの表現です。
- 基本形は、未活用時の表現です。「する・ます」が「し・ます」に活用したので、基本形は「する」です。
- 品詞は、「品詞、品詞細分類1、品詞細分類2、品詞細分類3」になります。未定義は「*」です。
- 読みは、カタカナで示されます。
形態素解析(品詞などの取得)が不要で、単にわかち書きしたいのであれば、以下のようにできます。
tokenizer = Tokenizer(wakati=True)
形態素解析のライブラリーでは MeCabもよく使われています。
janomeはpip install janomeだけでインストールでき、MeCabよりインストールが簡単という特徴があります。
しかし、実行速度はMeCabの方が早いので、大量データを処理するときはMeCabなどの方が良いでしょう。
janomeには、Analyzerという分析用のクラスもあります。Analyzerは、形態素解析の前処理・後処理をテンプレ化するためのフレームワークです。品詞によるフィルタリングなどができます。
from janome.tokenizer import Tokenizer
text = 'オリンピックを日本でします'
tokenizer = Tokenizer(wakati=True)
result = list(tokenizer.tokenize(text))
result
['オリンピック', 'を', '日本', 'で', 'し', 'ます']
以下のコードでもOK
tokenizer = Tokenizer()
tokens = tokenizer.tokenize(text)
result = [token.surface for token in tokens]
コメント