お話しするにはログインしてください。

|

Tips:話題欄だけに文字を入れて投稿すると、何も書き込まずその「話題」のタイムラインを開く。
id:Kodakana は
今はてなハイカーはこんなことに興味を持っているようですのことを語る

$ haikuwords.sh SeiSaguru
4 元気
3 商品
3 技術
3 開発
3 ロシア
2 連邦
2 総力
2 高性能
2 言い訳
2 結集

id:Kodakana は
今はてなハイカーはこんなことに興味を持っているようですのことを語る

$ haikuwords.sh masako_ima
14 餅
5 汁粉
3 腹筋
3 缶
2 皮
2 箸休め
2 女子
2 主食
2 自販機
2 向上

もちもちですね。

id:Kodakana は
今はてなハイカーはこんなことに興味を持っているようですのことを語る

引数にはてな ID を渡すと、そのハイカーさんが最近興味を持っていそうなことが分かるかも。
$ haikuwords.sh Kodakana
8 列
8 名詞
8 文字
7 テレビ
6 操作
6 処理
6 メモ
6 ハイク
4 抽出
4 自立

id:Kodakana は
今はてなハイカーはこんなことに興味を持っているようですのことを語る

以下を haikuwords.sh として保存。
UTF8 環境が前提。

  • ----------------------------------------------
  • !/bin/bash

    url=http://h.hatena.ne.jp/$1/.rss
    wget -q -O - $url | grep "description\|title" | sed -e "s/&amp;lt;/</g" | sed -e "s/&amp;gt;/>/g" | sed -e "s/<[^>]*>//g" | nkf --euc | chasen | nkf --utf8 | grep "名詞" | sort | sed -e "s/^.*\t.*\(数\|接頭\|副詞\|非自立\|接尾\|代名詞\).*$//g" | cut -f 1 | sed -e "/^$/d" | uniq -c | sort -r |…[全文を見る]

id:Kodakana は
はてなハイクのことを語る
id:Kodakana は
文字列操作メモのことを語る

ハイクで話題になっていそうなことを抽出してみる。
wget -q -O - http://h.hatena.ne.jp/.rss | grep "description\|title" | sed -e "s/&lt;/</g" | sed -e "s/&gt;/>/g" | sed -e "s/<[^>]*>//g" | nkf --euc | chasen | nkf --utf8 | grep "名詞" | sort | sed -e "s/^.*\t.*\(数\|接頭\|副詞\|非自立\|接尾\|代名詞\).*$//g" | tr -s "\n" | cut -f 1 | sed -e "/^$/d" | uniq -c | sort -r | head
 
出力例:
5 ひとり
3 テレビ
3 サザエさん
2 変
2 猫
2 切断
2 睡眠
2 進化
2 笑
2 最後

id:Kodakana は
文字列操作メモのことを語る

検索語の数が多すぎて今一なのでランダムに四つだけを取り出すように変更。
ggl="http://www.google.co.jp/search?q=`wget -q -O - http://h.hatena.ne.jp/.rss | grep "description\|title" | sed -e "s/&amp;lt;/</g" | sed -e "s/&amp;gt;/>/g" | sed -e "s/<[^>]*>//g" | nkf --euc | chasen | nkf --utf8 | grep "名詞" | sort | uniq -d | sed -e "s/^.*\t.*\(数\|接頭\|副詞\|非自立\|接尾\|代名詞\).*$//g" | tr -s "\n" | cut -f 1 | sort -R | sed -e "s/$/\t/g" | tr -d "\n" | cut -f 1-4 | sed -e "s/\t/\+OR\+/g"`"
 
自分で知りたいことを検索するのと違って何が出るかわからなくておもしろい。

id:Kodakana は
文字列操作メモのことを語る

ハイクの RSS から今話題になっていそうな名詞を抜き出して Google にかける URL を変数に入れる。
ggl="http://www.google.co.jp/search?q=`wget -q -O - http://h.hatena.ne.jp/.rss | grep "description\|title" | sed -e "s/&amp;lt;/</g" | sed -e "s/&amp;gt;/>/g" | sed -e "s/<[^>]*>//g" | nkf --euc | chasen | nkf --utf8 | grep "名詞" | sort | uniq -d | sed -e "s/^.*\t.*\(数\|接頭\|副詞\|非自立\|接尾\|代名詞\).*$//g" | tr -s "\n" | cut -f 1 | sort -R | sed -e "s/$/\ |\ /g" | tr -d "\n"`"
…[全文を見る]

id:Kodakana は
文字列操作メモのことを語る

uniq の後の -d が抜けてた。

id:Kodakana は
文字列操作メモのことを語る

ハイクの RSS から名詞を抽出して、さらに重複するものだけを抽出してみる。
wget -q -O - http://h.hatena.ne.jp/.rss | grep "description\|title" | sed -e "s/&amp;lt;/</g" | sed -e "s/&amp;gt;/>/g" | sed -e "s/<[^>]*>//g" | nkf --euc | mecab | nkf --utf8 | grep "名詞" | cut -f 1 | sort | uniq
出力例:
ー
TV
こと
ごと
の
ひとり
よう
ん
アナログ
オフ
カミナギ
キー
サッカー
テレビ
ハイク
ビール
ホント
ヤンキー
一
右
今
人
成人

id:Kodakana は
いま読んでない本のことを語る

そういえば数年前にゲーム理論の本を買ったような気がするが読んだ覚えがない

id:Kodakana は
プロレスリング・ノアのことを語る

id:Kodakana は
プロレスリング・ノアのことを語る

id:Kodakana は
悩み事のことを語る

カストロ っていうときいつも **トロ と間違えないかびくびくしちゃう

id:Kodakana は
世界三大革命家のことを語る

いやいやぶっちゃけ猪木・馬場は力道山先生の不慮の死によって革命せずして せかいのはんぶん を手に入れたろ
やはり革命家といえば 猪木に逆らった長州 元子に逆らった三沢
その後に続くのがレーニン、カストロあたりじゃね?

id:Kodakana は
世界三大革命家のことを語る

の一人に長州力を数えるとしたら、あとの二人は誰と誰だろ

id:Kodakana は
文字列操作メモのことを語る

sed はテキストを一行ずつ読み込んで処理するのが基本。
なので、複数行にまたがる処理をするのはややこしくなることがある。
手軽なのは、tr で改行を削除してから sed に渡す方法。
cat source.txt | tr -d "\n" | sed (略
後から改行を復元したい場合は、予め行末に印をつけておき、処理後に印を改行に置き換える。
sed -e "s/$/通常文中に出現せず、処理に支障ない文字列/g" source.txt | tr -d "\n" | sed 目的の処理 | sed -e "s/通常文中に出現せず、処理に支障ない文字列/\n/g"

id:Kodakana は
関係ない画像に人物名をつけてみるのことを語る

id:Kodakana は
テレビ今見てるテレビからのことを語る

あ動いた

id:Kodakana は
テレビ今見てるテレビからのことを語る

ゴン太くんは剥製になっていたのか…