タイトルの通りなんだけど日本語の文章から文字列を検索するコマンドをつくってみた。 GitHub - momijiame/jpgrep: grep for japanese text
背景
例えば、次のような日本語の文章を格納したテキストファイルがあるとする。 文章には「事」と「事実」という、どちらも "事" という漢字を含んだ単語が含まれている。 この中から「事」という単語が含まれた行だけを取り出したい場合を考えてみよう。
$ cat << EOF > sample.txt それは事実です そういう事です EOF
これを通常の grep コマンドで検索すると、両方の行がヒットしてしまう。
$ grep "事" sample.txt
それは事実です
そういう事です
そんなときは今回つくった jpgrep の出番になる。 このコマンドは形態素解析の結果にもとづいて文字列を検索する。 上記でいえば「事」と「事実」は別の形態素なので区別できる。
インストール
インストールは pip コマンドで行う。
$ pip install git+https://github.com/momijiame/jpgrep.git
インストールすると jpgrep コマンドが使えるようになる。
$ jpgrep --help
Usage: jpgrep [OPTIONS] QUERY [FILES]...
Options:
-v, --inverse
--help Show this message and exit.
使い方
先ほどのテキストファイルから「事」という単語を含んだ行を検索してみよう。
$ jpgrep "事" sample.txt
sample.txt:そういう事です
ちゃんと「事実」の含まれた行は除外されている。
ファイルまたはディレクトリが指定されない場合には、標準入力から読み込む。
$ cat sample.txt | jpgrep "事実" それは事実です
一致しないものを探すときは -v (--inverse) オプションをつける。
$ cat sample.txt | jpgrep -v "事実" そういう事です
そんなかんじ。
スマートPythonプログラミング: Pythonのより良い書き方を学ぶ
- 作者: もみじあめ
- 発売日: 2016/03/12
- メディア: Kindle版
- この商品を含むブログを見る