授業資料/コマンドラインで形態素解析
をテンプレートにして作成
開始行:
**コマンドラインで形態素解析 [#g7e8d689]
***MeCabとUniDicの準備 [#cba3f0e9]
-MeCabのインストール
sudo apt install mecab
--Mac
brew install mecab
-UniDicのダウンロード(ファイルが大きいので時間がかかる)
--[[現代書き言葉UniDic>https://clrd.ninjal.ac.jp/unidic/d...
wget https://clrd.ninjal.ac.jp/unidic_archive/2302/unidi...
unzip unidic-cwj-202302.zip -d unidic-cwj
--[[旧仮名口語UniDic>https://clrd.ninjal.ac.jp/unidic/dow...
wget https://clrd.ninjal.ac.jp/unidic_archive/2308/unidi...
unzip unidic-qkana-v202308.zip
動作確認
mecab -v
echo "ゼレンスキー大統領" | mecab -d unidic-cwj
echo "井ノ上たきな" | mecab -d unidic-cwj
echo "政府の行為によつて再び戦争の惨禍が起ることのないや...
echo "政府の行為によつて再び戦争の惨禍が起ることのないや...
***ファイルを短単位解析 [#v8785a83]
wget "https://www.dropbox.com/scl/fi/ahwe6wd78u3rusqy6j4...
mecab -d unidic-cwj JPConstitution.txt
mecab -d unidic-cwj -Ochamame JPConstitution.txt
mecab -d unidic-qkana -Ochamame JPConstitution.txt
-d 辞書を置いたディレクトリの指定
-O 出力フォーマットの指定(dicrcに書式指定あり)
-- -Ochamame :以前の茶まめの出力形式
-- -Ounidic :以前のUniDicの出力形式
--指定しないと全部の列が出力される
-出力フォーマットの指定例
--辞書フォルダのdicrcに書いておくとOオプションで楽に指定...
|語彙素|語彙素読み|語形|品詞|活用型|活用形|書字形|発音形|...
;語彙素\t語彙素読み\t語形\t品詞\t活用型\t活用形\t書字形\...
node-format-chamame2 = \t%m\t%f[7]\t%f[6]\t%f[23]\t%F-[0...
unk-format-chamame2 = \t%m\t\t\t%m\t未知語\t\t\t\t\t\t\n
bos-format-chamame2 = B
eos-format-chamame2 =
-新茶まめ風フォーマットを直接指定して解析
mecab -d unidic-cwj --node-format="\t%m\t%f[7]\t%f[6]\t%...
--またはdicrcにchamame2の書式を指定後にOオプションで指定...
mecab -d unidic-cwj -Ochamame2 JPConstitution.txt > JPCo...
-できているか確認
less JPConstitution_morph.txt
less JPConstitution_morph2.txt
***解析結果の処理 [#hbf30625]
-辞書による違いの確認
diff JPConstitution_morph.txt JPConstitution_morph2.txt
-接続詞だけ
grep 接続詞 JPConstitution_morph.txt
-固有名詞だけ(旧仮名UniDicでないと解析エラー多)
grep 固有名詞 JPConstitution_morph.txt
grep 固有名詞 JPConstitution_morph2.txt
-検索して集計
grep 接続詞 JPConstitution_morph2.txt |sort |uniq -c
grep $'\t副詞' JPConstitution_morph2.txt |sort |uniq -c
-発音形出現形だけ((cutはタブ区切りの場合は区切り記号(デ...
cut -f 10 JPConstitution_morph.txt
-品詞列だけ取り出して集計
cut -f 6 JPConstitution_morph.txt|sort|uniq -c
--さらに数が多い順に並べる
cut -f 6 JPConstitution_morph.txt|sort|uniq -c|sort -nr
***シェルスクリプトでの利用例 [#y28deed5]
-サンプル [[chiisaki.sh>https://www.dropbox.com/scl/fi/0w...
(有島武郎「小さき者へ」のテキストをダウンロードしてきてU...
サンプルのダウンロード
wget "https://www.dropbox.com/scl/fi/0wjfs7s5tlktfdx5pk6...
実行
bash chiisaki.sh
スクリプトの中身
wget "https://www.dropbox.com/scl/fi/vsphond396zcoxaqlhl...
nkf -S -w8 --overwrite chiisakimonoe.txt
mecab -d unidic-cwj --node-format="\t%m\t%f[7]\t%f[6]\t%...
grep $'\t副詞' chiisakimonoe_morph.txt |sort |uniq -c
終了行:
**コマンドラインで形態素解析 [#g7e8d689]
***MeCabとUniDicの準備 [#cba3f0e9]
-MeCabのインストール
sudo apt install mecab
--Mac
brew install mecab
-UniDicのダウンロード(ファイルが大きいので時間がかかる)
--[[現代書き言葉UniDic>https://clrd.ninjal.ac.jp/unidic/d...
wget https://clrd.ninjal.ac.jp/unidic_archive/2302/unidi...
unzip unidic-cwj-202302.zip -d unidic-cwj
--[[旧仮名口語UniDic>https://clrd.ninjal.ac.jp/unidic/dow...
wget https://clrd.ninjal.ac.jp/unidic_archive/2308/unidi...
unzip unidic-qkana-v202308.zip
動作確認
mecab -v
echo "ゼレンスキー大統領" | mecab -d unidic-cwj
echo "井ノ上たきな" | mecab -d unidic-cwj
echo "政府の行為によつて再び戦争の惨禍が起ることのないや...
echo "政府の行為によつて再び戦争の惨禍が起ることのないや...
***ファイルを短単位解析 [#v8785a83]
wget "https://www.dropbox.com/scl/fi/ahwe6wd78u3rusqy6j4...
mecab -d unidic-cwj JPConstitution.txt
mecab -d unidic-cwj -Ochamame JPConstitution.txt
mecab -d unidic-qkana -Ochamame JPConstitution.txt
-d 辞書を置いたディレクトリの指定
-O 出力フォーマットの指定(dicrcに書式指定あり)
-- -Ochamame :以前の茶まめの出力形式
-- -Ounidic :以前のUniDicの出力形式
--指定しないと全部の列が出力される
-出力フォーマットの指定例
--辞書フォルダのdicrcに書いておくとOオプションで楽に指定...
|語彙素|語彙素読み|語形|品詞|活用型|活用形|書字形|発音形|...
;語彙素\t語彙素読み\t語形\t品詞\t活用型\t活用形\t書字形\...
node-format-chamame2 = \t%m\t%f[7]\t%f[6]\t%f[23]\t%F-[0...
unk-format-chamame2 = \t%m\t\t\t%m\t未知語\t\t\t\t\t\t\n
bos-format-chamame2 = B
eos-format-chamame2 =
-新茶まめ風フォーマットを直接指定して解析
mecab -d unidic-cwj --node-format="\t%m\t%f[7]\t%f[6]\t%...
--またはdicrcにchamame2の書式を指定後にOオプションで指定...
mecab -d unidic-cwj -Ochamame2 JPConstitution.txt > JPCo...
-できているか確認
less JPConstitution_morph.txt
less JPConstitution_morph2.txt
***解析結果の処理 [#hbf30625]
-辞書による違いの確認
diff JPConstitution_morph.txt JPConstitution_morph2.txt
-接続詞だけ
grep 接続詞 JPConstitution_morph.txt
-固有名詞だけ(旧仮名UniDicでないと解析エラー多)
grep 固有名詞 JPConstitution_morph.txt
grep 固有名詞 JPConstitution_morph2.txt
-検索して集計
grep 接続詞 JPConstitution_morph2.txt |sort |uniq -c
grep $'\t副詞' JPConstitution_morph2.txt |sort |uniq -c
-発音形出現形だけ((cutはタブ区切りの場合は区切り記号(デ...
cut -f 10 JPConstitution_morph.txt
-品詞列だけ取り出して集計
cut -f 6 JPConstitution_morph.txt|sort|uniq -c
--さらに数が多い順に並べる
cut -f 6 JPConstitution_morph.txt|sort|uniq -c|sort -nr
***シェルスクリプトでの利用例 [#y28deed5]
-サンプル [[chiisaki.sh>https://www.dropbox.com/scl/fi/0w...
(有島武郎「小さき者へ」のテキストをダウンロードしてきてU...
サンプルのダウンロード
wget "https://www.dropbox.com/scl/fi/0wjfs7s5tlktfdx5pk6...
実行
bash chiisaki.sh
スクリプトの中身
wget "https://www.dropbox.com/scl/fi/vsphond396zcoxaqlhl...
nkf -S -w8 --overwrite chiisakimonoe.txt
mecab -d unidic-cwj --node-format="\t%m\t%f[7]\t%f[6]\t%...
grep $'\t副詞' chiisakimonoe_morph.txt |sort |uniq -c
ページ名: