日本語テキスト処理基礎講座2023
コマンドラインの基礎†
- Ubuntu (Linux)をWindows(WSL)上で動かす
WSLとUbuntuのインストール†
Macでは†
- スタートメニューからUbuntuを起動
- またはWindows TerminalでUbuntuのタブを開く
- またはVSCodeのターミナルでUbuntuを開く
- Macの人は代わりにターミナルを起動
最低限知っておきたいコマンド†
はじめに†
- コマンドの使い方を確認するには
- コマンド --helpで使い方
- man コマンドでマニュアル
- やりたいことをChatGPTに聞いてみるのもよい。ググるより効率がいい。
サンプルテキストのダウンロード†
- wget :webからファイルをダウンロードするツール
- インストール
sudo apt install wget
- インストール(Mac)
brew install wget
ファイル操作関連のコマンド†
- pwd :今いるディレクトリ(フォルダ)
- ls :ファイルリストの表示
- cd :今いるディレクトリから移動
- mkdir :ディレクトリの作成
- mv :ファイルの移動・リネーム
- cp :ファイルのコピー
- rm :ファイルの削除
テキスト処理関連のコマンド†
- echo :文字列を出力
- less :テキストファイルを1ページごとに表示
- head :テキストファイルの先頭を表示
- tail :テキストファイルの末尾を表示
- wc :行数・文字数等を表示
- cut :列の取り出し
- sort :並べ替え
- uniq :重複の削除・集計
- grep :検索(正規表現)
- nkf :文字コード変換
- インストール
sudo apt install nkf
- インストール(Mac)
brew install nkf
ファイルの確認†
- 中身を表示(qを押して終了)
less JPConstitution.txt
ターミナル上のテキストエディタ†
- vi :昔からのエディタで癖が強い
- nano :割と普通(だけどショートカットキーが〃)
標準入出力とパイプ†
- > :ファイルなどに処理結果を出力
- >> :追加出力
- < :ファイルなどから入力
- | :出力を次のコマンドにつなぐ
WSL関連(Windows)†
- Explorerでwslと打つと、今いるフォルダをカレントディレクトリにしてUbuntuのターミナルが開く
- Explorerなどで\\wsl$と打つとUbuntuのファイル(ルート)が開ける
- UbuntuのターミナルからWindowsのコマンドが呼べる
MeCabとUniDic†
- MeCabのインストール
sudo apt install mecab
wget https://clrd.ninjal.ac.jp/unidic_archive/2302/unidic-cwj-202302.zip
unzip unidic-cwj-202302.zip -d unidic-cwj
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
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
短単位解析†
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の出力形式
- 指定しないと全部の列が出力される
解析結果の処理†
シェルスクリプト†