- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2023-08-04T18:20:56+09:00","default:ogiwiki","ogiwiki")
#author("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/
-Windowsでは伝統的なコマンドプロンプト(cmd.exe)やPowerShellも最初から使えるが、機能と汎用性の面でLinuxを使うのがおすすめ。
-Microsoft StoreなどからWindows Terminalもインストールしておくと使い勝手が良いのでおすすめ。
-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]
-中身を表示
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]
***ターミナル上のテキストエディタ [#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
cp unidic-cwj/dicrc 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]]