#author("2023-08-05T16:15:09+09:00;2023-08-05T05:50:20+09:00","default:ogiwiki","ogiwiki") [[日本語テキスト処理基礎講座2023]] *コマンドラインの基礎 [#rdaab3bd] **準備 [#uec4830c] -Ubuntu (Linux)をWindows(WSL)上で動かす --Windowsでは伝統的なコマンドプロンプト(cmd.exe)やPowerShellが最初から使えるが、機能と汎用性の面からWSL上でLinuxを使うのがおすすめ。 --Windowsの標準の機能になって簡単にインストールして使用できるようになった --WSLとは: [[Windows Subsystem for Linux>https://learn.microsoft.com/ja-jp/windows/wsl/about]] --Ubuntu: https://jp.ubuntu.com/ -Microsoft Storeなどから[[Windows Terminal>https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701]]もインストールしておくと使い勝手が良い。 ***WSLとUbuntuのインストール [#ucd40159] -[[WSL を使用して Windows に Linux をインストールする>https://learn.microsoft.com/ja-jp/windows/wsl/install]] --Powershellを管理者権限で起動(アプリ->Windows PowerShell->管理者として実行)して下記をコピペ wsl --install ***Macでは [#b467ca17] -[[Homebrew>https://brew.sh/index_ja]]をインストールしておく /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ***起動 [#wf3fed74] -スタートメニューからUbuntuを起動 --またはWindows TerminalでUbuntuのタブを開く --またはVSCodeのターミナルでUbuntuを開く ---VSCodeのWSL拡張を入れておく --Macの人は代わりにターミナルを起動 **最低限知っておきたいコマンド [#l2d4c3a9] ***はじめに [#qb199492] -コマンドの使い方を確認するには --コマンド --helpで使い方 --man コマンドでマニュアル -便利な機能 --TAB補完 --ヒストリ(↑↓) -やりたいことを[[ChatGPT>https://chat.openai.com/]]に聞いてみるのもよい。ググるより効率がいい。 ***サンプルテキストのダウンロード [#n7bb0c44] -wget :webからファイルをダウンロードするツール --インストール sudo apt install wget --インストール(Mac) brew install wget -[[日本国憲法 JPConstitution.txt(UTF8)>https://www.dropbox.com/scl/fi/ahwe6wd78u3rusqy6j4yl/JPConstitution.txt?rlkey=cwnsj0vtj7e6nnl5je40qmd0m&dl=1]] ※下のコマンドをターミナルにコピペしてダウンロード wget "https://www.dropbox.com/scl/fi/ahwe6wd78u3rusqy6j4yl/JPConstitution.txt?rlkey=cwnsj0vtj7e6nnl5je40qmd0m&dl=1" -O JPConstitution.txt -[[こころ kokoro.txt(Shift_JIS)>https://www.dropbox.com/s/r89ahi6goxy5a2c/kokoro.txt&dl=1]] wget "https://www.dropbox.com/s/r89ahi6goxy5a2c/kokoro.txt&dl=1" -O kokoro.txt ***ファイル操作関連のコマンド [#hba42de3] -pwd :今いるディレクトリ(フォルダ) -ls :ファイルリストの表示 -cd :今いるディレクトリから移動 -mkdir :ディレクトリの作成 -mv :ファイルの移動・リネーム -cp :ファイルのコピー -rm :ファイルの削除 -unzip :zipファイルの展開(解凍) ***テキスト処理関連のコマンド [#c0600481] -echo :文字列を出力 -less :テキストファイルを1ページごとに表示 --head :テキストファイルの先頭を表示 --tail :テキストファイルの末尾を表示 -wc :行数・文字数等を表示 -cut :列の取り出し -sort :並べ替え -uniq :重複の削除・集計 -grep :検索(正規表現) -sed :置換(正規表現) sed -e 's/検索文字列/置換文字列/g' ファイル名 -nkf :文字コード変換 --インストール sudo apt install nkf --インストール(Mac) brew install nkf ***ファイルの確認 [#b257835b] -中身を表示(qを押して終了) less JPConstitution.txt -文字コードの変換 nkf -S -w8 kokoro.txt |less nkf -S -w8 --overwrite kokoro.txt -ルビを取り去る((最短一致は拡張正規表現-E指定が必要)) sed -E -e 's/《.+?》//g;s/[#.+?]//g' kokoro.txt -行数や文字数を表示 wc JPConstitution.txt wc -c JPConstitution.txt ***ターミナル上のテキストエディタ [#af7d367b] -vi :昔からのエディタで癖が強い -nano :割と普通(だけどショートカットキーが〃) -code :VSCodeで開く ***標準入出力とパイプ [#qfb28871] -> :ファイルなどに処理結果を出力 ->> :追加出力 -< :ファイルなどから入力 -| :出力を次のコマンドにつなぐ ***WSL関連(Windows) [#h66c337b] -Explorerでwslと打つと、今いるフォルダをカレントディレクトリにしてUbuntuのターミナルが開く -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/unidic-cwj-202302.zip unzip unidic-cwj-202302.zip -d unidic-cwj --[[旧仮名口語UniDic>https://clrd.ninjal.ac.jp/unidic_archive/2203/UniDic-202203_60b_qkana.zip]] wget https://clrd.ninjal.ac.jp/unidic_archive/2203/UniDic-202203_60b_qkana.zip 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 "政府の行為によつて再び戦争の惨禍が起ることのないやうにする" | mecab -d unidic-cwj echo "政府の行為によつて再び戦争の惨禍が起ることのないやうにする" | mecab -d unidic-qkana mecab -d unidic-cwj JPConstitution.txt | less ***短単位解析 [#v8785a83] mecab -d unidic-cwj -Ochamame JPConstitution.txt > JPConstitution_morph.txt mecab -d unidic-qkana -Ochamame JPConstitution.txt > JPConstitution_morph2.txt -d 辞書を置いたディレクトリの指定 -O 出力フォーマットの指定(dicrcに書式指定あり) -- -Ochamame :以前の茶まめの出力形式 -- -Ounidic :以前のUniDicの出力形式 --指定しないと全部の列が出力される -できているか確認 less JPConstitution_morph.txt ***解析結果の処理 [#hbf30625] -接続詞だけ grep 接続詞 JPConstitution_morph.txt -固有名詞だけ(旧仮名UniDicでないと解析エラー多) grep 固有名詞 JPConstitution_morph.txt grep 固有名詞 JPConstitution_morph2.txt -検索して集計 grep 接続詞 JPConstitution_morph.txt |sort |uniq -c grep $'\t副詞' JPConstitution_morph.txt |sort |uniq -c -発音形出現形だけ cut -f 10 JPConstitution_morph.txt ***シェルスクリプト [#y28deed5] -バッチファイルとして .shファイルにまとめる **参考 [#z4efe01c] -[[言語処理100本ノック>https://nlp100.github.io/ja/]] -[[とほほのUnix/Linux入門>https://www.tohoho-web.com/wwwunix.htm]] -[[とほほのBash入門>https://www.tohoho-web.com/ex/shell.html]]