Subscribed unsubscribe Subscribe Subscribe

ゲレンデがとけるほどくだらないスクリプト

再びMeCabを使ってみた。
MacにてText::MeCabを使う - すぎゃーんメモ
形態素解析を使って適当なnickを作ってWassrに送信するまで - すぎゃーんメモ


今回は形容詞や動詞の前に「ゲレンデがとけるほど」を挿入する。
kohmingサブルーチンに日本語の文章を渡せば挿入された文章が返ってくるようにした。
サンプルとして便利なWassrのpublic timelineを使用して試してみる。

#!/opt/local/bin/perl
use strict;
use warnings;

use JSON 'decode_json';
use LWP::Simple 'get';
use Text::MeCab;
use Readonly;

Readonly::Scalar my $kohmi => 'ゲレンデがとけるほど';

my $json = get 'http://api.wassr.jp/statuses/public_timeline.json';
for my $status (@{decode_json $json}) {
    my $result = kohming($status->{text});
    print "$result\n";
}

sub kohming {
    my $text = shift;

    my $mecab = Text::MeCab->new();
    my $n = $mecab->parse($text);
    my $output = '';

    # 末尾まで進める
    $n = $n->next while ($n->next);

    my $flg = 0;
    # 末尾からさかのぼる
    while (($n = $n->prev)->prev) {
        # フラグがたっていれば挿入候補位置
        if ($flg) {
            # 名詞/副詞のときはまだ挿入しない
            if ($n->feature !~ / \A (名詞|副詞) /xms) {
                $output = $kohmi . $output;
                $flg = 0;
            }
        }

        # 出力の連結
        $output = $n->surface . $output;

        # 動詞/形容詞を検出してフラグをたてる
        if ($n->feature =~ / \A (動詞|形容詞) /xms) {
            $flg = 1;
        }
    }
    # 先頭のチェック
    if ($flg) {
        $output = $kohmi . $output;
    }

    return $output;
}


実行結果:

$ ./kohmi.pl 
HTTP-Response-Encoding-0.06:http://search.cpan.org/~dankogai/HTTP-Response-Encoding-0.06/
おはよー
今日はゲレンデがとけるほどムシムシするなー
束縛じゃないよね。それがチームワークってもんかと。
とてもとても
@poppenは今のアイコンだととても発言がとても紳士だ。
日々是休肝。ってなわけでゲレンデがとけるほど飲まない!{color:silver:(@kunipon)}
ゲレンデがとけるほどふー。今日は髪切りにゲレンデがとけるほど行こう。ていうか何故か「ゲレンデがとけるほどかみ」で「髪」がゲレンデがとけるほど変換できない。なんでやねん。ゲレンデがとけるほどIMEバグった?
しゅっし
いや、ゲレンデがとけるほど言っても俺がゲレンデがとけるほど青アザつくるだけだから
今日の朝飯はスイカだった。朝は果物だけでゲレンデがとけるほどいいんじゃないかという気もゲレンデがとけるほどする。小動物にゲレンデがとけるほどなった気分にゲレンデがとけるほどなれる。
ネットがゲレンデがとけるほど介さなくても、友達の友達がゲレンデがとけるほど集まってゲレンデがとけるほど飲むから一緒にゲレンデがとけるほどいかな〜ゲレンデがとけるほどい?とかさ、なんかそういう、ゲレンデがとけるほど知らないひとたちとゲレンデがとけるほど会う、みたいの、学生時代とかもゲレンデがとけるほどよくあったじゃない?そういう経験もゲレンデがとけるほどないのかしら…
最近ようやくクックパッドでゲレンデがとけるほどレシピ見たりとかネットレンタルとかゲレンデがとけるほど眺めたりとかゲレンデがとけるほど出来るようにゲレンデがとけるほどなったみたいだけどね。でも何かネットでゲレンデがとけるほど購入する時は俺がゲレンデがとけるほど代行しゲレンデがとけるほどてるw
俺がゲレンデがとけるほどすげゲレンデがとけるほどー束縛してゲレンデがとけるほどいるみたいな流れだな。まぁ、結婚ってお互いをゲレンデがとけるほど尊重するってことだから、mattnがゲレンデがとけるほど言ったみたいに、お互いに一歩ずつゲレンデがとけるほど譲ればゲレンデがとけるほどうまくゲレンデがとけるほどいくんじゃないかねー
っていうか、ゲレンデがとけるほど暑くてゲレンデがとけるほどクラクラしゲレンデがとけるほどてるのにゲレンデがとけるほど出るのがゲレンデがとけるほど遅くて電車にゲレンデがとけるほど乗っゲレンデがとけるほどてないとこは全部、ゲレンデがとけるほど走ってゲレンデがとけるほど死んだ*Sh*
ゲレンデがとけるほど言ったらゲレンデがとけるほどヒビ入るか。
着うたは地味にゲレンデがとけるほど嬉しいですけどゲレンデがとけるほど実用性なし。(バイブ主
ESETさんが黄色から青にゲレンデがとけるほど戻ったまぁ、再起動はまだ何だけど
ゲレンデがとけるほど手打ちしてやろうかとゲレンデがとけるほど意気込んだら人間がゲレンデがとけるほど打てるようなサイズじゃなくてボクがナメてました・・・すみません・・・にゲレンデがとけるほどなった
おはようおはよう

形容詞も動詞もはいってなければそのまま出力。
口語の文章だとイマイチな結果になってしまうこともしばしば。
「やってみる」とか動詞が連なるときも対処した方がいいかしら。