« Posts tagged 日本語ハッシュタグ

Twitter上での日本語ハッシュタグフィルタリング その2

前回、いろいろ追加してそれなりにフィルタリング出来るようになったと思っていたんですが、残念ながら取りこぼしがみょろーんと出てたのでまた拡張していこうと思います

まず敗因は元サイトのはてブコメントのこれ

quaoarquaoarTween(が使っている.NETの正規表現ライブラリ)では、文字クラスの範囲指定はJIS漢字順ではなくUnicode順([亜-黑] は “一” にマッチしない)だと思うんだけど…2011/10/09

まじか・・・知らなかったわー
で試してみたら「#一」がフィルタリングされない始末だったので、調べて拡張していきましょう

(#|#)[¥w]*[a-zA-Z0-9ぁ-ヶ亜-黑]

前回までがこれ。¥は半角で。これはJIS順な正規表現ライブラリでは問題ないんですが、TweenみたいなUnicode順な正規表現ライブラリだとアウアウ
悲しいのでこれにUnicode順でみて漢字範囲を割り当てていきます。めんどくさいんで一気に行くとこうなりました

(#|#)[¥w]*[a-zA-Z0-9ぁ-ヾ一-龥豈-鶴]

例の如く¥は半角で。きっとこれで良いはず・・・!きっと・・・!

Twitter上での日本語ハッシュタグフィルタリング(追記有り)

2011/12/10 TweenはJIS順じゃなくてUnicode順だそうなのでそれに合わせて拡張しました
Twitter上での日本語ハッシュタグフィルタリング その2 

————

うざい日本語ハッシュタグをタイムライン上から消し去る方法 : さざなみ壊変

というのが紹介されてまして
日本語ハッシュタグを正規表現で検出して、各クライアントで別タブなりに隔離しよう、というものです
確かに「あるある」ネタだったり、非公式RTを誘発するようなのだったりが多くて個人的にもどうかなと思ったので俺もフィルタリングしようと
ただ、このサイトで紹介されてる方法だとちょっと取りこぼしが発生するので、ちょこっといじってみました

と言っても、俺自身正規表現に明るくないので、これも取りこぼしあるかも知れませんがw

まず、上記サイトで紹介されているものは

#[ぁ-ヶ亜-黑]

これです。これだと、「#5秒で~」とかにひっかりません
これについては、はてブのコメントで

mizushima88mizushima88これじゃ英数で始まる日本語ハッシュタグに対応できてないよ。たぶんこれでいけるはず→ #[a-zA-Z0-9]*[ぁ-ヶ亜-黑]/夜フクロウ(Mac)とJanetter2(Win)でNG動作確認

と指摘されていますのでこれをさらにいじります

これに加えて、全角の#で始まるハッシュタグを対象に加えます

(#|#)[a-zA-Z0-9]*[ぁ-ヶ亜-黑]

こんな感じで。さらに、アンダーバーもタグとして有効なので対象に加えます

(#|#)[_a-zA-Z0-9]*[ぁ-ヶ亜-黑]

長くなってきましたが、ここまでです

Twitter上では、(#|#)S+[ぁ-ヶ亜-黑] でどーよって書いてたんですが、アンダーバーだけじゃなくハイフンも対象になってしまうので違うなと思いましたw
正直これでも困りはしないと思うけどね・・・
Tween上でしか確認してませんけど多分大方フィルタリング出来てるんじゃないかなと思います多分
余計なのがフィルタリングされてたり、逆に取りこぼしてたりしたらこっそり教えてくださいw

————

さてここから2011/08/17 12:18頃追記

今日になって元サイトのはてブコメント眺めてたら、こんな事が書かれてました

touhousintyakutouhousintyaku1文字目が全角数字の日本語ハッシュタグが流れてきてワロタ

なんだと・・・!?
よくみると確かに範囲に入ってない!
そして「#5秒で~」が取りこぼされてる!これはいかん!ということで更に長くしてみようと思います

半角英数をそのまま全角にして、後ろに入れます

(#|#)[_a-zA-Z0-9]*[a-zA-Z0-9ぁ-ヶ亜-黑]

終了ですw
まぁあとよく見たら、半角判定部分って「¥w」(¥は半角で)で纏められるそうなので

(#|#)¥w*[a-zA-Z0-9ぁ-ヶ亜-黑]

¥は半角にしておいて下さい。これでも、多分期待した動作するんじゃないかなーと思います分かりませんけどw