日本語テキスト処理基礎講座2023/④コマンドラインの基礎
をテンプレートにして作成
開始行:
[[日本語テキスト処理基礎講座2023]]
*コマンドラインの基礎 [#rdaab3bd]
**準備 [#uec4830c]
-Ubuntu(Linux)をWindows(WSL)上で動かす
--Windowsでは伝統的なコマンドプロンプト(cmd.exe)やPower...
--Windowsの標準の機能になって簡単にインストールして使用で...
--WSLとは: [[Windows Subsystem for Linux>https://learn.mi...
--Ubuntu: https://jp.ubuntu.com/
-Microsoft Storeなどから[[Windows Terminal>https://apps.m...
***WSLとUbuntuのインストール [#ucd40159]
-[[WSL を使用して Windows に Linux をインストールする>htt...
--Powershellを管理者権限で起動(アプリ->Windows PowerShel...
wsl --install
***Macでは [#b467ca17]
-[[Homebrew>https://brew.sh/index_ja]]をインストールして...
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent...
***起動 [#wf3fed74]
-スタートメニューからUbuntuを起動
--またはWindows TerminalでUbuntuのタブを開く
--またはVSCodeのターミナルでUbuntuを開く
---VSCodeのWSL拡張を入れておく
--Macの人は代わりにターミナルを起動
**最低限知っておきたいコマンド [#l2d4c3a9]
***はじめに [#qb199492]
-コマンドの使い方を確認するには
--コマンド --help で使い方
less --help
--man コマンド でマニュアル
man less
-便利な機能
--TAB補完
--ヒストリ(↑↓)
-やりたいことを[[ChatGPT>https://chat.openai.com/]]に聞い...
***サンプルテキストのダウンロード [#n7bb0c44]
-wget :webからファイルをダウンロードするツール
--インストール
sudo apt install wget
--インストール(Mac)
brew install wget
-[[日本国憲法 JPConstitution.txt(UTF8)>https://www.dropbo...
wget "https://www.dropbox.com/scl/fi/ahwe6wd78u3rusqy6j4...
-[[こころ kokoro.txt(Shift_JIS)>https://www.dropbox.com/s...
wget "https://www.dropbox.com/s/r89ahi6goxy5a2c/kokoro.t...
***ファイル操作関連のコマンド [#hba42de3]
-pwd :今いるディレクトリ(フォルダ)
-ls :ファイルリストの表示
-cd :今いるディレクトリから移動
-mkdir :ディレクトリの作成
-mv :ファイルの移動・リネーム
-cp :ファイルのコピー
-rm :ファイルの削除
-unzip :zipファイルの展開(解凍)
--インストール
sudo apt install unzip
--インストール(Mac)
brew install unzip
***テキスト処理関連のコマンド [#c0600481]
-echo :文字列を出力
-less :テキストファイルを1ページごとに表示
--head :テキストファイルの先頭を表示
--tail :テキストファイルの末尾を表示
-wc :行数・文字数等を表示
-cut :列の取り出し
-sort :並べ替え
-uniq :重複の削除・集計
-grep :検索(正規表現)
grep '正規表現' ファイル
-sed :置換(正規表現)
sed -e 's/検索文字列/置換文字列/g' ファイル名
-nkf :文字コード変換
--インストール
sudo apt install nkf
--インストール(Mac)
brew install nkf
***ファイルの確認 [#b257835b]
-中身を表示(qを押して終了)
less JPConstitution.txt
-行数や文字数を表示
wc JPConstitution.txt
wc -m JPConstitution.txt
-文字コードの変換
nkf -S -w8 kokoro.txt |less
nkf -S -w8 -Lu --overwrite kokoro.txt
-正規表現を使った置換(ルビを取り去る)((最短一致は拡張正...
sed -E -e 's/《.+?》//g;s/[#.+?]//g' kokoro.txt >koko...
--プログラムとして保存しておいて実行も
---removeruby.sed
s/《.+?》//g
s/[#.+?]//g
sed -E -f removeruby.sed kokoro.txt >kokoro2.txt
-正規表現で検索
grep '読[まみむめもん]' kokoro.txt
***ターミナル上のテキストエディタ [#af7d367b]
-vi :昔からのエディタで癖が強い
-nano :割と普通(だけどショートカットキーが〃)
-code :VSCodeで開く((code - とすると標準入力を受け取って...
ls|code -
***標準入出力とパイプ [#qfb28871]
-> :ファイルなどに処理結果を出力
->> :追加出力
-< :ファイルなどから入力
-| :出力を次のコマンドにつなぐ
***WSL関連(Windows) [#h66c337b]
-Explorerのアドレスバーにwslと打つと、今いるフォルダをカ...
-Explorerのアドレスバーに\\wsl$と打つとUbuntuのファイル(...
-UbuntuのターミナルからWindowsのコマンドが呼べる
**MeCabとUniDic [#cba3f0e9]
-MeCabのインストール
sudo apt install mecab
--Mac
brew install mecab
-UniDicのダウンロード
--[[現代書き言葉UniDic>https://clrd.ninjal.ac.jp/]]
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_arc...
wget https://clrd.ninjal.ac.jp/unidic_archive/2203/UniDi...
unzip UniDic-202203_60b_qkana.zip
mv 60b_qkana unidic-qkana
mv unidic-qkana/.dicrc unidic-qkana/dicrc
-動作確認
mecab -v
echo "ゼレンスキー大統領" | mecab -d unidic-cwj
echo "井ノ上たきな" | mecab -d unidic-cwj
echo "政府の行為によつて再び戦争の惨禍が起ることのないや...
echo "政府の行為によつて再び戦争の惨禍が起ることのないや...
mecab -d unidic-cwj JPConstitution.txt | less
***短単位解析 [#v8785a83]
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 =
--#現代語unidic-cwj
---node-format= \t%m\t%f[7]\t%f[6]\t%f[23]\t%F-[0,1,2,3]\...
--#旧仮名unidic-qkana(現代語用と違うので注意。まもなく出...
---node-format= \t%m\t%f[7]\t%f[6]\t%f[15]\t%F-[0,1,2,3]\...
-新茶まめ風フォーマットを直接指定して解析
mecab -d unidic-cwj --node-format="\t%m\t%f[7]\t%f[6]\t%...
mecab -d unidic-qkana --node-format="\t%m\t%f[7]\t%f[6]...
--またはdicrcにchamame2の書式を指定後にOオプションで指定...
mecab -d unidic-cwj -Ochamame2 JPConstitution.txt > JPCo...
mecab -d unidic-qkana -Ochamame2 JPConstitution.txt > JP...
-できているか確認
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]
-コマンドを並べたテキストファイルを .shファイルにまとめる...
--shファイルに実行可能フラグを付ける
chmod +x *.sh
-サンプル[[chiisakimonoe.sh>https://www.ogiso.net/wiki/in...
(有島武郎「小さき者へ」のテキストをダウンロードしてきてU...
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
-シェルスクリプトは変数や制御構文も使えてもっと本格的なこ...
**参考 [#z4efe01c]
-[[言語処理100本ノック>https://nlp100.github.io/ja/]]
-[[とほほのUnix/Linux入門>https://www.tohoho-web.com/wwwu...
-[[とほほのBash入門>https://www.tohoho-web.com/ex/shell.h...
終了行:
[[日本語テキスト処理基礎講座2023]]
*コマンドラインの基礎 [#rdaab3bd]
**準備 [#uec4830c]
-Ubuntu(Linux)をWindows(WSL)上で動かす
--Windowsでは伝統的なコマンドプロンプト(cmd.exe)やPower...
--Windowsの標準の機能になって簡単にインストールして使用で...
--WSLとは: [[Windows Subsystem for Linux>https://learn.mi...
--Ubuntu: https://jp.ubuntu.com/
-Microsoft Storeなどから[[Windows Terminal>https://apps.m...
***WSLとUbuntuのインストール [#ucd40159]
-[[WSL を使用して Windows に Linux をインストールする>htt...
--Powershellを管理者権限で起動(アプリ->Windows PowerShel...
wsl --install
***Macでは [#b467ca17]
-[[Homebrew>https://brew.sh/index_ja]]をインストールして...
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent...
***起動 [#wf3fed74]
-スタートメニューからUbuntuを起動
--またはWindows TerminalでUbuntuのタブを開く
--またはVSCodeのターミナルでUbuntuを開く
---VSCodeのWSL拡張を入れておく
--Macの人は代わりにターミナルを起動
**最低限知っておきたいコマンド [#l2d4c3a9]
***はじめに [#qb199492]
-コマンドの使い方を確認するには
--コマンド --help で使い方
less --help
--man コマンド でマニュアル
man less
-便利な機能
--TAB補完
--ヒストリ(↑↓)
-やりたいことを[[ChatGPT>https://chat.openai.com/]]に聞い...
***サンプルテキストのダウンロード [#n7bb0c44]
-wget :webからファイルをダウンロードするツール
--インストール
sudo apt install wget
--インストール(Mac)
brew install wget
-[[日本国憲法 JPConstitution.txt(UTF8)>https://www.dropbo...
wget "https://www.dropbox.com/scl/fi/ahwe6wd78u3rusqy6j4...
-[[こころ kokoro.txt(Shift_JIS)>https://www.dropbox.com/s...
wget "https://www.dropbox.com/s/r89ahi6goxy5a2c/kokoro.t...
***ファイル操作関連のコマンド [#hba42de3]
-pwd :今いるディレクトリ(フォルダ)
-ls :ファイルリストの表示
-cd :今いるディレクトリから移動
-mkdir :ディレクトリの作成
-mv :ファイルの移動・リネーム
-cp :ファイルのコピー
-rm :ファイルの削除
-unzip :zipファイルの展開(解凍)
--インストール
sudo apt install unzip
--インストール(Mac)
brew install unzip
***テキスト処理関連のコマンド [#c0600481]
-echo :文字列を出力
-less :テキストファイルを1ページごとに表示
--head :テキストファイルの先頭を表示
--tail :テキストファイルの末尾を表示
-wc :行数・文字数等を表示
-cut :列の取り出し
-sort :並べ替え
-uniq :重複の削除・集計
-grep :検索(正規表現)
grep '正規表現' ファイル
-sed :置換(正規表現)
sed -e 's/検索文字列/置換文字列/g' ファイル名
-nkf :文字コード変換
--インストール
sudo apt install nkf
--インストール(Mac)
brew install nkf
***ファイルの確認 [#b257835b]
-中身を表示(qを押して終了)
less JPConstitution.txt
-行数や文字数を表示
wc JPConstitution.txt
wc -m JPConstitution.txt
-文字コードの変換
nkf -S -w8 kokoro.txt |less
nkf -S -w8 -Lu --overwrite kokoro.txt
-正規表現を使った置換(ルビを取り去る)((最短一致は拡張正...
sed -E -e 's/《.+?》//g;s/[#.+?]//g' kokoro.txt >koko...
--プログラムとして保存しておいて実行も
---removeruby.sed
s/《.+?》//g
s/[#.+?]//g
sed -E -f removeruby.sed kokoro.txt >kokoro2.txt
-正規表現で検索
grep '読[まみむめもん]' kokoro.txt
***ターミナル上のテキストエディタ [#af7d367b]
-vi :昔からのエディタで癖が強い
-nano :割と普通(だけどショートカットキーが〃)
-code :VSCodeで開く((code - とすると標準入力を受け取って...
ls|code -
***標準入出力とパイプ [#qfb28871]
-> :ファイルなどに処理結果を出力
->> :追加出力
-< :ファイルなどから入力
-| :出力を次のコマンドにつなぐ
***WSL関連(Windows) [#h66c337b]
-Explorerのアドレスバーにwslと打つと、今いるフォルダをカ...
-Explorerのアドレスバーに\\wsl$と打つとUbuntuのファイル(...
-UbuntuのターミナルからWindowsのコマンドが呼べる
**MeCabとUniDic [#cba3f0e9]
-MeCabのインストール
sudo apt install mecab
--Mac
brew install mecab
-UniDicのダウンロード
--[[現代書き言葉UniDic>https://clrd.ninjal.ac.jp/]]
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_arc...
wget https://clrd.ninjal.ac.jp/unidic_archive/2203/UniDi...
unzip UniDic-202203_60b_qkana.zip
mv 60b_qkana unidic-qkana
mv unidic-qkana/.dicrc unidic-qkana/dicrc
-動作確認
mecab -v
echo "ゼレンスキー大統領" | mecab -d unidic-cwj
echo "井ノ上たきな" | mecab -d unidic-cwj
echo "政府の行為によつて再び戦争の惨禍が起ることのないや...
echo "政府の行為によつて再び戦争の惨禍が起ることのないや...
mecab -d unidic-cwj JPConstitution.txt | less
***短単位解析 [#v8785a83]
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 =
--#現代語unidic-cwj
---node-format= \t%m\t%f[7]\t%f[6]\t%f[23]\t%F-[0,1,2,3]\...
--#旧仮名unidic-qkana(現代語用と違うので注意。まもなく出...
---node-format= \t%m\t%f[7]\t%f[6]\t%f[15]\t%F-[0,1,2,3]\...
-新茶まめ風フォーマットを直接指定して解析
mecab -d unidic-cwj --node-format="\t%m\t%f[7]\t%f[6]\t%...
mecab -d unidic-qkana --node-format="\t%m\t%f[7]\t%f[6]...
--またはdicrcにchamame2の書式を指定後にOオプションで指定...
mecab -d unidic-cwj -Ochamame2 JPConstitution.txt > JPCo...
mecab -d unidic-qkana -Ochamame2 JPConstitution.txt > JP...
-できているか確認
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]
-コマンドを並べたテキストファイルを .shファイルにまとめる...
--shファイルに実行可能フラグを付ける
chmod +x *.sh
-サンプル[[chiisakimonoe.sh>https://www.ogiso.net/wiki/in...
(有島武郎「小さき者へ」のテキストをダウンロードしてきてU...
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
-シェルスクリプトは変数や制御構文も使えてもっと本格的なこ...
**参考 [#z4efe01c]
-[[言語処理100本ノック>https://nlp100.github.io/ja/]]
-[[とほほのUnix/Linux入門>https://www.tohoho-web.com/wwwu...
-[[とほほのBash入門>https://www.tohoho-web.com/ex/shell.h...
ページ名: