KUMA TYPE

猫、パソコン、プログラム、映画、ドラマ、アニメ、perl、etc.

グルーポン(共同購入クーポン)系サイトAPIまとめ

そのうちこれらのAPIを使って何か出来ればと思ってまとめ。

とここまで調べていて、オールクーポンAPIはクーポン情報のまとめサイトのAPIなのでオールクーポンAPIだけ押させておけばいいのではないかと悟った。


その他関連リンク

タグ : ,

形態素解析・特徴語抽出エンジン『MeCab』に単語やユーザ辞書を追加する方法

オープンソースの形態素解析・特徴語抽出エンジン『MeCab』に単語を追加する方法。つまりうまく単語を切り出せなかったときにうまく切り出せるようにユーザー辞書を作成したりして単語を追加していく方法。

詳しくはリンク先を参照。Windows上で利用する場合元の説明を見ると分かりにくいのでWindows上で使うのに困らない様メモとして記しておく。


ユーザ辞書追加の準備

フォーマット

表層形,左文脈ID,右文脈ID,コスト,品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用形,活用型,原形,読み,発音

 

直接最初から付属している辞書を編集するか、以下の様にユーザ辞書を作成して追加する。通常辞書がインストールされているパスは以下の場所である。

C:\Program Files\MeCab\dic\ipadic

 

ユーザ辞書を追加する場合は以下のファイイルを編集して

C:\Program Files\MeCab\etc\mecabrc

以下の様にユーザ辞書のパスを指定する。

userdic = F:\kumacchi\MyProgram\perl\mecabdic\user.dic

 


ユーザ辞書の作成方法

以下のようにユーザ辞書の元になるcsvファイルを作成する。大抵の場合一般名詞か人名の追加になるとおもう。詳しくは関連リンク先を参照。

  • 文脈IDは「-1」にしておけば自動で良きに計らってくれるので便利。
  • コストはその単語の出現率を表す。小さいほど出現率は高くなる。徐々に小さくして様子をみるといい。
  • 行の作り方が分からないときは上記の元からある辞書を見て参考にする。

user.csv

超電磁砲,-1,-1,4000,名詞,一般,*,*,*,*,超電磁砲,チョウデンジホウ,チョウデンジホウ
山田太郎,-1,-1,6893,名詞,固有名詞,人名,一般,*,*,山田太郎,ヤマダタロウ,ヤマダタロウ

 

csvファイルを辞書ファイルに変換するのには「mecab-dict-index」コマンドを利用する。Windows上で使う場合はパスの指定などが分かりづらいので以下のようにバッチファイルにしておくと便利。実際のオプションの指定方法等も下記のバッチファイルを参照又は関連リンク先を参照。

userdic.bat

@echo off
REM MeCab: 単語の追加方法
REM http://mecab.sourceforge.net/dic.html
REM
REM     * 適当なディレクトリに移動 (例: /home/foo/bar)
REM     * foo.csv というファイルを作成
REM     * foo.csv に単語を追加
REM     * 辞書のコンパイル#
REM
REM       % /usr/local/libexec/mecab/mecab-dict-index -d/usr/local/lib/mecab/dic/ipadic \
REM       -u foo.dic -f euc-jp -t euc-jp foo.csv
REM
REM           o -d DIR: システム辞書があるディレクトリ
REM           o -u FILE: FILE というユーザファイルを作成
REM           o -f charset: CSVの文字コード
REM           o -t charset: バイナリ辞書の文字コード
REM     * /home/foo/bar/foo.dic ができていることを確認
REM     * /usr/local/lib/mecab/dic/ipadic/dicrc もしくは /usr/local/etc/mecabrc に以下を追加
REM
REM       userdic = /home/foo/bar/foo.dic
REM
REM     * /usr/local/etc/mecabrc を編集する権限が無い場合は /usr/local/etc/mecabrc を ~/.mecabrc にコピーし, 上記のエントリを追加
REM     * userdic はCSVフォーマットデ複数指定可能
REM
REM        userdic = /home/foo/bar/foo.dic,/home/foo/bar2/usr.dic,/home/foo/bar3/bar.dic
REM
REM
REM
echo on

"C:\Program Files\MeCab\bin\mecab-dict-index" -d"C:\Program Files\MeCab\dic\ipadic" -u user.dic -f shift-jis -t shift-jis user.csv

pause

うまく辞書が作成出来れば以下の様になる。

20100765


関連記事


関連リンク

タグ :

【perlメモ】ワイルドカード「.」(ピリオド)がパターンに含まれるときマッチしてしまわないようにするには?

たいした話ではないが、ちょっとしたことではまったりするのでメモ。

if("version" =~ m/ver./){

}

これをマッチしないようにするには

if("version" =~ m/ver\./){

}

こうする。当たり前すぎ。

test.pl

#!/usr/bin/perl
use strict;
use warnings;
use utf8;

my $pattern = "ver.";
my $str1     = ‘version’;
my $str2     = ‘ver.’;

if($str1 =~ /($pattern)/){
    print "str1 match $1\n";
}else{
    print "str1 un match\n";
}

if($str2 =~ /($pattern)/){
    print "str2 match $1\n";
}else{
    print "str2 un match\n";
}

パターンを変数に入れてマッチングする場合。 上のソースを実行すると

F:\kumacchi\MyProgram\perl\sample\tmp>perl test.pl
str1 match vers
str2 match ver.

F:\kumacchi\MyProgram\perl\sample\tmp>

versionにもver.にもマッチしてしまう。普通にver.だけにマッチさせているつもりがversionにもマッチしてしまっている場合があったりする。「ver.」にだけマッチさせたい場合。

#!/usr/bin/perl
use strict;
use warnings;
use utf8;

my $pattern = "ver.";
my $str1     = ‘version’;
my $str2     = ‘ver.’;

$pattern =~ s/\./\\./g;

if($str1 =~ /($pattern)/){
    print "str1 match $1\n";
}else{
    print "str1 un match\n";
}

if($str2 =~ /($pattern)/){
    print "str2 match $1\n";
}else{
    print "str2 un match\n";
}

上のように修正して、実行する。

F:\kumacchi\MyProgram\perl\sample\tmp>perl test.pl
str1 un match
str2 match ver.

F:\kumacchi\MyProgram\perl\sample\tmp>

「ver.」にだけマッチするようになった。他の方法としては「/\Q($pattern)\E/」の様に\Q\Eでパターンを囲む。

他にも「*」「?」等も同様に処理する必要がある。固定のパターンではなくデータとして大量のパターンマッチングを行なうときに考慮していないと変なマッチングになってハマることがあるので注意。

タグ : ,

【アニメ】『BLEACH』「尸魂界(ソウル・ソサエティ)篇」の感想

BLEACH 尸魂界 潜入篇 1 (初回限定生産) [DVD]

GyaO!でアニメ『BLEACH』の「尸魂界(ソウル・ソサエティ)篇」を34話まで見た時点での感想。少年ジャンプ連載マンガが原作のアニメ。

BLEACH|無料動画 GyaO![ギャオ]|アニメ


あらすじ

主人公黒崎一護はホロウに襲われ危ないところを死神朽木ルキアに助けられるが、その為に怪我を負ったルキアから死神の力をもらい死神となりホロウと戦うようになる。それによりルキアは死神の掟を破った罪人となり処刑されることになる。黒崎一護はルキアを助けるために仲間と共にソウル・ソサエティに向かう。

 


感想

BLEACHの新作劇場版映画公開の宣伝のために現在GyaO!でソウルソサエティ篇が全話ではないがほぼ一挙公開されている。少年ジャンプを買って読んでいた頃ルキアが捕まって一護が助けに行くところあたりまで読んだ覚えがある。当時そこそこ面白い作品だとは思っていたが当時マンガで読んでいた時よりアニメの方が面白く感じるような気がする。ドラゴンボール並に冒頭に前回のあらすじが入るのは少しうざい。話の進み具合も少し遅めで引っ張ってる感じがする。まあそれでも面白とは思う。話的には命を助けられて力を分け与えられるとか命を共有するとかいうタイプの定番的な話。よく分からないけどソウル・ソサエティは死んだ人が行くところだと思うんだけど、ソウル・ソサエティで子供は成長したり、人が死んだりしてお墓に入ったりしてるのが突っ込みたくなるが細かいことは気にせず楽しもう。きっとちゃんと理由付けもあるのだろう。とりあえずおすすめです。

タグ : , ,

【ゲーム】「THE LAST STORY(ラストストーリー):プレゼンテーション~新たなRPGを求めて~」の動画を見た。

20100763

ラストストーリー 特典 エレメント オブ ザ ラストストーリー(サントラCD+ビジュアルブック)付き

ラストストーリーがいよいよ2011年1月27日発売になるわけですが、USTREAMで行われた坂口氏のプレゼンをリアルタイムではありませんでしたがUSTREAMで見ました。以下のURLで実際に見ることが出来ます。

ラストストーリー 特典 エレメント オブ ザ ラストストーリー(サントラCD+ビジュアルブック)付き

ゲームはそこそこ面白そうな感じでしたが、プレゼンではいまいち面白さを伝えきれていないように感じました。やってみたいなーと感じさせるような斬新さもプレゼンからはあまり感じませんでした。ニンテンドー3DSのプレゼンはわくわくしてニンテンドー3DSが欲しくなるようなプレゼンでしたがこのプレゼンは期待していた割に正直いまいちだったと思います。ただ、個人的にはラストストーリーに売れてほしいなーと思っています。Wiiでサードパーティーがゲームを売るのは難しいと言われていますがどうなるのか結果がたのしみです。ただ任天堂ブランドで発売なので純粋にサードでは無いと思いますが、同じく任天堂ブランドで発売したゼノブレイドも爆死してるみたいなのでやっぱり厳しいところだとは思います。


関連リンク

Wii本体 ラストストーリー スペシャルパック(RVL-S-WABA) 特典 エレメント オブ ザ ラストストーリー(サントラCD+ビジュアルブック)付き
Wii本体 ラストストーリー スペシャルパック(RVL-S-WABA) 特典 エレメント オブ ザ ラストストーリー(サントラCD+ビジュアルブック)付き

タグ :

【詐欺】不要な貴金属の買取詐欺の問題

未定なブログ 10万円の宝石「1700円で」 訪問買い取り相談4倍

asahi.com(朝日新聞社):10万円の宝石「1700円で」 訪問買い取り相談4倍 – 社会

凄くタイムリーなんだけど、台東区ですがこの貴金属買取詐欺師らしき奴らが今日うちにもやって来た。私が直接対応したわけではないがリビングから玄関の話を聞いてきた。相手はどうやら二人組の男らしい。

「訪問販売ではないのですが、いらないアクセサリなどあったら買い取ります。」みたいなことをいっていた。

無いと答えると

「なんでもいいのでなんかないですか?」みたいに何時までも帰る気配もなくしつこい。

「無い」「なんでもいいのでなんかないですか?」の堂々巡り。

「古いネックレスとかそういうのでもう使ってないのとかありませんかねー」みたいなことをいってたり。とにかく何でもいいから持ってこさせようとしているのが見え見えだった。

すぐに上の記事の話が頭に浮かんでピンと来た。これで何か探して持って行こうものなら勝手安い値段つけてに持って行こうとするんだろうなーと思った。

結局お帰りしていただいたが、ここらへんでああいうのが徘徊しているかと思うと被害にあっている人がいるのではないかと思いとても心配になった。回覧板で回したほうがいいかも知れない。実家の年老いた両親にも知らせておいた方がいいかも知れないと思った。

しかし、次から次へとあくどい事を思いつく人がいるものですね。

この記事を読んだ人も周りに周知していただけると幸いです。

タグ :

グルーポンAPIを使ってグルーポン情報を取得してその中からグルメ情報だけ選別して表示するプログラムを作ってみた。

グルメ グルーポン 共同購入 クーポン – グルメルク

20100762

最近グルーポンが流行っているらしいのでグルーポンのAPIがあるか検索したら普通にあったのでちょっとやってやってみた。ただ情報を取得するだけでは面白く無いので取得した情報の中からグルメ関連の情報だけ選別して別表示にする様にしてみた。それでもって2年ぐらい前にぐるなびAPIで作ったサイトの機能にしてみた。

画面は上の画像の様な感じになっていて、グルーポン開催地域をクリックするとその地域で開催されているグルーポンの情報をグルメ関連かそうでないかを判定してグルメ関連ならグルメ関連の枠内に表示するようになっていてそれ以外はグルメ以外の枠内に表示されます。


技術情報

取得したグルーポンの情報がグルメ関連かグルメ関連以外かを判定するのにはベイズ理論を利用してみました。ちょっと前の記事でperlモジュールのAlgorithm::NaiveBayesを使ってスパム判定をしてみるサンプルを書きましたがあれです。実際うまくいくか分からなかったのですが、少し学習させるとかなりの判定率でちゃんと判定してくれます。ベイズ理論恐るべし。おもしろいのでこれを使って色々作ってみたくなりますね。


グルーポンについて

今回グルーポンAPIをつかってアプリを作成してみるまでグルーポンについてよく知らなかったのですが、知らない人のために書いておくと、簡単に言うと共同購入でかなり割引率の高い(50%以上)の割引クーポンをネット上で共同購入するもので制限時間内に規定数売れば取引成立してその割引率のクーポンが手に入り、高い割引率で安く物を買ったりサービスを受けたりすることが出来るというものらしいです。こんなのが流行ってるとは知りませんでした。ツイッターやFacebookが活用されているようですが僕はどちらも使いこなしていないのでよくわかりませんw。

このマーケティング手法をフラッシュマーケティングというらしいです。短時間の取引なことが名前の由来の様です。

グルーポン系と言われるようにグルーポンが先がけの様で有名です。それと似たようなサイトがいくつも出来てるみたいです。

グルーポン(GROUPON) – 1日限定の超プレミアクーポン購入サイト

それらのグルーポン系サイトのまとめ情報では下のサイトが有名な様です。

グルーポンなう – グルーポン系共同購入クーポン情報まとめサイト

 


関連記事


外部リンク

タグ :

クリスマスケーキ食べた

CA350596

甘かった。俺はラーメンのほうがいいやw。

クリスマスケーキというのは当日に数作るのは無理なので1ヶ月も前から作りおきして冷凍庫を借りて冷凍保存しておいたりするのでクリスマスケーキを予約して買うより毎日必要数つくって売ってる普通のケーキを買ったほうが美味しくていいと思う。

タグ :

Google Chrome 拡張機能『Autofill』でパスワード自動入力

最近よく使うGoogle Chromeの拡張機能「Autofill」です。フォーム自動入力系の拡張機能です。LastPassをよく使っていましたが、あのソフトはパスワード入力欄に過剰反応しすぎでパスワード入力欄があるサイトだとウザイくらいに聞いてくるのと、既に保存しているのになんども保存するか聞いてきたり、どうでもいいサイトでは聞いてくるのに肝心の保存したいサイトで聞いてこなかったりと色々ウザイのでもっとシンプルな物を探していました。

FirefoxならInFormEnterとSecure Loginがあればフォーム入力はほとんど困らないのだけど、Chromeにも同じものが移植されるといいんですけどね。

Autofill – Google Chrome 拡張機能ギャラリー

設定は面倒ですが拡張機能の画面からオプションをクリックして設定画面に行きます。

20100750

実際の設定画面は下のような感じです。この画面をブックマークバーにブックマークしておけば便利です。

20100751


使い方

LastPassの様に自動で検知して登録してくれないので自分でHTMLソースをみて必要項目を調べて登録する必要があり面倒ですが、一度登録してしまえばあとは弄る必要もないし、なにより自分で設定する分小回りが効くのでLastPassが自動で入力出来ないサイトでも入力できるので便利です。あと設定画面がシンプルで分かりやすいのも設定画面が複雑なLastPassより好みです。

ここでは実際にFC2ブログにログインする為の設定方法を解説します。FC2のログイン画面は下のようになっていると思います。

20100747

このページのソースをブラウザのページのソース表示機能で表示します。するとこのようになっています。必要な部分を分かりやすいように色分けしています。

IDのinputタグがnameidtypetextというのとパスワードのinputタグがnamepasstypepasswordというのが分かると思います。あとログインページのURLがhttp://fc2.com/login.php?ref=blogなのでそれぞれ控えておきます。

 

<div id="login_jack">
    <form name="form_login" method="post" action="http://blog.fc2.com/" onSubmit="return blog_login_form_check();">
    <ul>
                        <li>メールアドレス/ブログID</li>
        <li><input name="id" type="text" id="id" value="" class="input" /></li>
        <li>パスワード</li>
        <li><input name="pass" type="password" id="pass" class="input" /></li>
        <li><label><input name="keep_login" type="checkbox" id="keep_login" onclick="alert_keep_login()" value="1" /> ログイン状態を維持</label></li>
        <li class="item"><input name="image" type="image" src="http://fc2.com/image/login_button.gif" alt="ログイン" /></li>
        <li class="item item2"><a href="http://help.fc2.com/fc2id/qa/group4/" target="_blank">[ログインできないときは?]</a></li>
        <li class="item item2"><a href="http://id.fc2.com/remind.php?switch_language=ja">[パスワードを再発行する]</a></li>
        <li class="item item2"><a href="http://blog.fc2.com/fc2id.html">ブログをFC2IDに移行するには?</a></li>
    </ul>
    <input type="hidden" name="mode" id="mode" value="login" />
    <input type="hidden" name="email" id="email" value="" />
    <input name="done" type="hidden" id="done" value="%ref%" />
    </form>
    <br />
    <div class="item"><a href="http://id.fc2.com/signup.php?switch_language=ja"><img src="http://static.fc2.com/share/fc2footermenu/blank.gif" class="NewEntry" alt="新規登録はこちら" /></a></div>
</div>

それだけ分ればあとは簡単です。

[+]のボタンをクリックして入力フィールドを追加します。

20100753

まずはIDから

  1. typeは「text」だったのでTypeは「text」を選択。
  2. nameは「id」だったので Nameの欄には「id」と入力。
  3. Valueの欄には実際に入力したいIDを入力します。ここでは仮に「kumacchi」とします。
  4. Siteの欄にはhttp://fc2.com/login.php?ref=blogのうち「http://fc2.com/login.php」部分だけ入力します。(「fc2.com」の部分だけでも大丈夫だと思いますが、より厳密にマッチさせるにはURLは詳細に入力したほうがいいです。)
  5. 次はパスワードを入力するので再度[+]をクリックして新しい入力フィールドを追加します。

20100754

次はパスワード

  1. パスワードのinputタグのtypeは「password」だったのでTypeは「password」を選択。
  2. nameは「pass」だったのでName欄には「pass」と入力。
  3. Value欄には実際に入力するパスワードを入力します。ここでは仮に「hogehoge」としています。
  4. Siteの欄には先ほどと同じように「http://fc2.com/login.php」と入力します。
  5. 最後に[Save]ボタンをクリックして設定を保存します。[Options saved.]と画面に表示されればOKです。

20100755

実際に使ってみる。

ログイン画面を新しく開くかリロードすると、idとパスワードが自動的に入力されます。あとはログインするだけです。便利ですね。

20100758 

入力タイプはSelectやRadioやCheckboxやhiddenなどにも対応しているので色々なサイトで様々な入力項目を自動入力させることが出来ると思います。

20100760

タグ : , ,

『パソコントラブル出張修理・サポート日記』がブログ更新停止!?

重要なお知らせ:ブログ更新停止 : パソコントラブル出張修理・サポート日記

「セキュリティーホールmemo」見てたら「パソコントラブル出張修理・サポート日記」のブログ「重要なお知らせ・ブログ更新停止」について書かれていてびっくりした。

セキュリティホール memo

記事は以下の通り、予約投稿のようだし、年末だし、きっと忙しいのか旅行に出かけてしばらくPCを使わないと死亡したと判断して自動的に投稿するソフトを止めるのを忘れていたとかだと思いたい。というか思っている。前回の記事は12月7日だしきっと何かの手違いだと信じたい。

20100742

 

ここまで書いていたのですが、やはり怖くてこの記事を投稿できないでいました。しかし、本日亡くなられた事がわかりました。とても残念ですご冥福をお祈りします。

笹本さんのブログのRSSはsageにも登録していたので巡回サイトの一つでよく読んでいましたが、家も最近新築されたばかりっだったと思いますがこれからという時に亡くなられてほんとうに残念です。

Togetter – 「笹本真一さんの消息」

セキュリティホール memo

タグ :

 
© KUMA TYPE