Linux 用 Windows サブシステム2 (WSL2)のトップページ
ここの手順で Ubuntu の設定をすると MeCab とその拡張辞書 (mecab-ipadic-NEologd) がインストールされています.このページでは MeCab で形態素解析を行なってみよう.
MeCab で形態素解析を行うには ubuntu にログインして mecab
コマンドを実行します.その後,形態素解析を実行したい文を入力し,Enter
で実行します.終了するには Ctrl + C を押します.
rinsaka@XPS2019:~$ mecab ⏎
今日はメロンパンを食べました ⏎
今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
メロン 名詞,一般,*,*,*,*,メロン,メロン,メロン
パン 名詞,一般,*,*,*,*,パン,パン,パン
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
食べ 動詞,自立,*,*,一段,連用形,食べる,タベ,タベ
まし 助動詞,*,*,*,特殊・マス,連用形,ます,マシ,マシ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
EOS
自然言語処理の基本である形態素解析を勉強します ⏎
自然 名詞,形容動詞語幹,*,*,*,*,自然,シゼン,シゼン
言語 名詞,一般,*,*,*,*,言語,ゲンゴ,ゲンゴ
処理 名詞,サ変接続,*,*,*,*,処理,ショリ,ショリ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
基本 名詞,一般,*,*,*,*,基本,キホン,キホン
で 助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ
ある 助動詞,*,*,*,五段・ラ行アル,基本形,ある,アル,アル
形態素 名詞,一般,*,*,*,*,形態素,ケイタイソ,ケイタイソ
解析 名詞,サ変接続,*,*,*,*,解析,カイセキ,カイセキ
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
勉強 名詞,サ変接続,*,*,*,*,勉強,ベンキョウ,ベンキョー
し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
ます 助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス
EOS
^C # 終了するには Ctrl + C を押す
rinsaka@XPS2019:~$
形態素解析に用いる辞書を指定するには -d
オプションを利用します.次の例では標準辞書を指定しているので,上と全く同じ結果が得られるはずです.標準の辞書では「メロンパン」が「メロン」と「パン」という形態素に分割されていることがわかります.
rinsaka@XPS2019:~$ mecab -d /var/lib/mecab/dic/ipadic-utf8 ⏎ 今日はメロンパンを食べました ⏎ 今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー は 助詞,係助詞,*,*,*,*,は,ハ,ワ メロン 名詞,一般,*,*,*,*,メロン,メロン,メロン パン 名詞,一般,*,*,*,*,パン,パン,パン を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 食べ 動詞,自立,*,*,一段,連用形,食べる,タベ,タベ まし 助動詞,*,*,*,特殊・マス,連用形,ます,マシ,マシ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ EOS 自然言語処理の基本である形態素解析を勉強します ⏎ 自然 名詞,形容動詞語幹,*,*,*,*,自然,シゼン,シゼン 言語 名詞,一般,*,*,*,*,言語,ゲンゴ,ゲンゴ 処理 名詞,サ変接続,*,*,*,*,処理,ショリ,ショリ の 助詞,連体化,*,*,*,*,の,ノ,ノ 基本 名詞,一般,*,*,*,*,基本,キホン,キホン で 助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ ある 助動詞,*,*,*,五段・ラ行アル,基本形,ある,アル,アル 形態素 名詞,一般,*,*,*,*,形態素,ケイタイソ,ケイタイソ 解析 名詞,サ変接続,*,*,*,*,解析,カイセキ,カイセキ を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 勉強 名詞,サ変接続,*,*,*,*,勉強,ベンキョウ,ベンキョー し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ ます 助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス EOS ^C # 終了するには Ctrl + C を押す rinsaka@XPS2019:~$
次に,MeCabの拡張辞書である mecab-ipadic-NEologd を指定して形態素解析を実行します.拡張辞書を利用すると「メロンパン」が認識できているだけでなく,「自然言語処理」や「形態素解析」なども一つの形態素として認識されていることがわかります.拡張辞書では芸能人の芸名のような固有名詞についても多くが登録されています.
rinsaka@XPS2019:~$ mecab -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd ⏎ 今日はメロンパンを食べました ⏎ 今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー は 助詞,係助詞,*,*,*,*,は,ハ,ワ メロンパン 名詞,固有名詞,一般,*,*,*,メロンパン,メロンパン,メロンパン を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 食べ 動詞,自立,*,*,一段,連用形,食べる,タベ,タベ まし 助動詞,*,*,*,特殊・マス,連用形,ます,マシ,マシ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ EOS 自然言語処理の基本である形態素解析を勉強します ⏎ 自然言語処理 名詞,固有名詞,一般,*,*,*,自然言語処理,シゼンゲンゴショリ,シゼンゲンゴショリ の 助詞,連体化,*,*,*,*,の,ノ,ノ 基本 名詞,一般,*,*,*,*,基本,キホン,キホン で 助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ ある 助動詞,*,*,*,五段・ラ行アル,基本形,ある,アル,アル 形態素解析 名詞,固有名詞,一般,*,*,*,形態素解析,ケイタイソカイセキ,ケイタイソカイセキ を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 勉強 名詞,サ変接続,*,*,*,*,勉強,ベンキョウ,ベンキョー し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ ます 助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス EOS ^C # 終了するには Ctrl + C を押す rinsaka@XPS2019:~$
なお,拡張辞書のインストール先は環境によって異なる可能性があることにも注意してください.
分かち書きを行うには -Owakachi
オプションを指定します.
rinsaka@XPS2019:~$ mecab -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd -Owakati ⏎ 今日はメロンパンを食べました ⏎ 今日 は メロンパン を 食べ まし た 自然言語処理の基本である形態素解析を勉強します ⏎ 自然言語処理 の 基本 で ある 形態素解析 を 勉強 し ます ^C # 終了するには Ctrl + C を押す rinsaka@XPS2019:~$
MeCab の標準形式とは異なる茶筌形式で出力するには -Ochasen
オプションを指定します.
rinsaka@XPS2019:~$ mecab -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd -Ochasen ⏎ 今日はメロンパンを食べました ⏎ 今日 キョウ 今日 名詞-副詞可能 は ハ は 助詞-係助詞 メロンパン メロンパン メロンパン 名詞-固有名詞-一般 を ヲ を 助詞-格助詞-一般 食べ タベ 食べる 動詞-自立 一段 連用形 まし マシ ます 助動詞 特殊・マス 連用形 た タ た 助動詞 特殊・タ 基本形 EOS 自然言語処理の基本である形態素解析を勉強します ⏎ 自然言語処理 シゼンゲンゴショリ 自然言語処理 名詞-固有名詞-一般 の ノ の 助詞-連体化 基本 キホン 基本 名詞-一般 で デ だ 助動詞 特殊・ダ 連用形 ある アル ある 助動詞 五段・ラ行アル 基本形 形態素解析 ケイタイソカイセキ 形態素解析 名詞-固有名詞-一般 を ヲ を 助詞-格助詞-一般 勉強 ベンキョウ 勉強 名詞-サ変接続 し シ する 動詞-自立 サ変・スル 連用形 ます マス ます 助動詞 特殊・マス 基本形 EOS ^C # 終了するには Ctrl + C を押す rinsaka@XPS2019:~$
テキストファイルの形態素解析を行うこともできます.なおテキストファイルの文字コードは UTF-8 として作業します.既に解析したいテキストファイルがあれば,Documents フォルダなど任意の場所に設置して次のステップに進んでください.ここでは GitHub のサンプルデータセットをダウンロードして展開します.
まず,GitHub からクローンを作成(ダウンロード)します.
rinsaka@XPS2019:~$ cd Documents/ ⏎ rinsaka@XPS2019:~/Documents$ git clone https://github.com/rinsaka/sample-data-sets.git ⏎ Cloning into 'sample-data-sets'... remote: Enumerating objects: 312, done. remote: Counting objects: 100% (107/107), done. remote: Compressing objects: 100% (70/70), done. remote: Total 312 (delta 52), reused 86 (delta 35), pack-reused 205 Receiving objects: 100% (312/312), 15.36 MiB | 4.64 MiB/s, done. Resolving deltas: 100% (144/144), done. rinsaka@XPS2019:~/Documents$
ダウンロードされたデータセットを確認します.サンプル文書データは corpora.zip
です.この圧縮ファイルを unzip
コマンドで展開します.
rinsaka@XPS2019:~/Documents$ cd sample-data-sets/ ⏎ rinsaka@XPS2019:~/Documents/sample-data-sets$ ls ⏎ (中略) corpora.zip names.json (中略) rinsaka@XPS2019:~/Documents/sample-data-sets$ unzip corpora.zip ⏎ Archive: corpora.zip inflating: corpora/en_abs_1.txt inflating: corpora/en_abs_2.txt inflating: corpora/en_abs_3.txt inflating: corpora/en_abs_4.txt inflating: corpora/ja_abs_1.txt inflating: corpora/ja_abs_2.txt inflating: corpora/ja_abs_3.txt inflating: corpora/ja_abs_4.txt inflating: corpora/ja_abs_5.txt inflating: corpora/sample_1.txt inflating: corpora/sample_2.txt inflating: corpora/sample_3.txt extracting: corpora/sample_4.txt inflating: corpora/sample_5.txt rinsaka@XPS2019:~/Documents/sample-data-sets$ ls ⏎ (中略) corpora names.json corpora.zip novels.json (中略) rinsaka@XPS2019:~/Documents/sample-data-sets$ cd corpora/ ⏎ rinsaka@XPS2019:~/Documents/sample-data-sets/corpora$
展開されたテキストファイルを確認します.例えば ja_abs_1.txt
ファイルの中身を確認します.
rinsaka@XPS2019:~/Documents/sample-data-sets/corpora$ ls ⏎
en_abs_1.txt en_abs_4.txt ja_abs_3.txt sample_1.txt sample_4.txt
en_abs_2.txt ja_abs_1.txt ja_abs_4.txt sample_2.txt sample_5.txt
en_abs_3.txt ja_abs_2.txt ja_abs_5.txt sample_3.txt
rinsaka@XPS2019:~/Documents/sample-data-sets/corpora$ cat ja_abs_1.txt ⏎
研究者が自身で収集した学術論文の文献 PDF ファイルを効率的に管理し,研究活動に
有効活用することを目的として,文献 PDF データベースシステムを開発した.利用者は
PDF ファイルを Web ブラウザからサーバにアップロードすることで,PDF ファイルを
一元的に管理できるようになるとともに,全文検索,ジャーナル検索,著者検索,タグ
(キーワード)検索が利用できるようになる.また,論文情報の登録などに BIBTEX 情報を
活用することも本システムの特徴のひとつである.本論文では文献 PDF データベースシ
ステムの詳細について議論するとともに,性能評価実験の結果を考察する.
rinsaka@XPS2019:~/Documents/sample-data-sets/corpora$
テキストファイルの形態素解析を行うには,ファイル名を引数に与えます.
rinsaka@XPS2019:~/Documents/sample-data-sets/corpora$ mecab -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd -Owakati ja_abs_1.txt ⏎
研究者 が 自身 で 収集 し た 学術 論文 の 文献 PDF ファイル を 効率的 に 管理 し , 研究 活動 に
有効活用 する こと を 目的 として , 文献 PDF データベースシステム を 開発 し た . 利用者 は
PDF ファイル を Web ブラウザ から サーバ に アップロード する こと で , PDF ファイル を
一元的 に 管理 できる よう に なる とともに , 全文検索 , ジャーナル 検索 , 著者 検索 , タグ
( キーワード ) 検索 が 利用 できる よう に なる . また , 論文 情報 の 登録 など に BIBTEX 情報 を
活用 する こと も 本 システム の 特徴 の ひとつ で ある . 本 論文 で は 文献 PDF データベース シ
ステム の 詳細 について 議論 する とともに , 性能 評価 実験 の 結果 を 考察 する .
rinsaka@XPS2019:~/Documents/sample-data-sets/corpora$
解析結果をファイルに書き出すには > 出力ファイル名
によるリダイレクトを使うと良いでしょう.例えば解析結果を result.txt
に書き出します.
rinsaka@XPS2019:~/Documents/sample-data-sets/corpora$ mecab -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd -Owakati ja_abs_1.txt > result.txt ⏎ rinsaka@XPS2019:~/Documents/sample-data-sets/corpora$ ls ⏎ en_abs_1.txt en_abs_4.txt ja_abs_3.txt result.txt sample_3.txt en_abs_2.txt ja_abs_1.txt ja_abs_4.txt sample_1.txt sample_4.txt en_abs_3.txt ja_abs_2.txt ja_abs_5.txt sample_2.txt sample_5.txt rinsaka@XPS2019:~/Documents/sample-data-sets/corpora$ cat result.txt ⏎ 研究者 が 自身 で 収集 し た 学術 論文 の 文献 PDF ファイル を 効率的 に 管理 し , 研究 活動 に 有効活用 する こと を 目的 として , 文献 PDF データベースシステム を 開発 し た . 利用者 は PDF ファイル を Web ブラウザ から サーバ に アップロード する こと で , PDF ファイル を 一元的 に 管理 できる よう に なる とともに , 全文検索 , ジャーナル 検索 , 著者 検索 , タグ ( キーワード ) 検索 が 利用 できる よう に なる . また , 論文 情報 の 登録 など に BIBTEX 情報 を 活用 する こと も 本 システム の 特徴 の ひとつ で ある . 本 論文 で は 文献 PDF データベース シ ステム の 詳細 について 議論 する とともに , 性能 評価 実験 の 結果 を 考察 する . rinsaka@XPS2019:~/Documents/sample-data-sets/corpora$