2013年9月アーカイブ

スクリーンショット

日本語形態素解析API短縮URL展開APIに続いて、OGP(Open Graph Protocol)データ取得APIをリリースしました。


OGP(Open Graph Protocol)データ取得API■140note


URLの示すページからOGP(Open Graph Protocol)での情報取得を行うフリーAPIです。


チェック用フォームでURLとユーザーエージェントを指定すると結果を表示できますので、開発者以外の方も、サイトからどのようなOGP情報が取得されているかの確認にご活用ください。


ユーザーエージェントとして指定できるのは現在、 PC、iPhone、iPad、Android、Windows Phoneです。
後日任意のユーザーエージェントを指定できるように対応する予定です。


OGPとはHTML上に書かれたそのページを示す情報のフォーマットですが、詳しくはここでは説明しないのでこのページでも読んでみてください。

日本語形態素解析APIをリリースするに当たって色々としたわけなんですが、そのうちの一つ(というかほぼすべて)に形態素解析エンジンMeCab(和布蕪)のインストールがあります。
せっかくなのでインストール手順をここに書き残しておきます。
インストールしたときの環境はざっと以下の通り。
  • サーバ:さくらVPS
  • OS:CentOS6.4
  • PHP:5.3.3(5.4.2でも同様でした)
  • MeCab:0.996
  • IPAdic:2.7.0
  • php-mecab:0.5.0
  • 文字コード:UTF-8
本記事ではディレクトリ構成がデフォルトのままであることを前提に進めていますので、構成をいじっている方はそれに合わせて変更してください。
さくらVPSへのMeCabインストールを取り上げたblog記事はすでにいくらでもあるのですが、バージョンが古かったり環境が微妙に違っていたりもするので、こうして新しい情報を掲載するのも、まあ、意味があるのではないかと。

はじめに

上記二つの記事をかなり参考にさせていただきました。
読みやすいblog、好きです。
本当にありがとうございます。

MeCabのインストール

$ cd
$ su
まずはrootに移動、それと管理者権限を取得。
(説明不要とは思いますが、上記コマンドの頭の「$」並びに今後出てくる「#」は打つ必要ないです)
わかりやすいように管理者権限を取得して作業を進めていますが、makeやvimでのファイル書き込みといった必要な箇所でsudoを頭につけるのでもOKです。
# wget https://mecab.googlecode.com/files/mecab-0.996.tar.gz
# tar zxfv mecab-0.996.tar.gz
# cd mecab-0.996
# ./configure --enable-utf8-only
# make
# make install
やっていることはファイルのダウンロードと解凍、configureでの文字コード設定、makeでのインストールです。

IPAdicのインストール

次に辞書のインストールをします。
標準辞書であるIPAdicです。
# wget http://sourceforge.net/projects/mecab/files/mecab-ipadic/2.7.0-20070801/mecab-ipadic-2.7.0-20070801.tar.gz
# tar zxvf mecab-ipadic-2.7.0-20070801.tar.gz
# cd mecab-ipadic-2.7.0-20070801
# ./configure --with-mecab-config=/usr/local/bin/mecab-config --prefix=/usr/local/ --with-charset=utf8
# make
# make install
サーバの構造を変えている場合は、configureの際のパスが変わることがあるかと思います。
mecabが使う辞書の設定はmecabrcというファイルに書き込まれています。
下記コマンドで開いてみましょう。
(vimなのは私の好みです。viでもemacsでもご自分の好みでどうぞ)
# vim /usr/local/etc/mecabrc
すると、以下の行があるかと思います。
これが使用する辞書の指定部分となります
dicdir = /usr/local/lib/mecab/dic/ipadic
違う辞書を使う場合はこのファイルを変えることになりますが、今回は上記のままで。

php_mecabのインストール

MeCabをPHPから使えるようにするため、php_mecabをインストールします。
PHP5.3.x以降の場合、バージョン0.4.0以前だとインストールが通らないみたいなので、0.4.1以降を使うようにします。
今回は最新の0.5.0としました。
# wget https://github.com/downloads/rsky/php-mecab/php-mecab-0.5.0.tgz
# tar xzvf php-mecab-0.5.0.tgz
# cd php-mecab-0.5.0
# phpize
# ./configure --with-php-config=/usr/bin/php-config --with-mecab=/usr/local/bin/mecab-config
# make
# make install
以下のようなメッセージが表示されると思います。
Installing shared extensions: /usr/lib64/php/modules/
以下のコマンドでmecab.soというファイルができていることを確認できます。
# ls -l /usr/lib64/php/modules/mecab.so
実際にphpから呼び出すためには、php.iniを書き換えるか、あるいはプログラム内でモジュールをロードするかのどちらかが必要になります。
今回はphp.iniを書き換えることにします。
# vim /etc/php.ini
上記コマンドでphp.iniを開いて、どこかに
extension=mecab.so
と追加してください。
# service httpd restart
Webサーバを再起動しました。
これでphpからMeCabを使えるようになりました。
# exit
管理者権限を抜けました。

試してみる

以下、動作を確認するためのサンプルコード二つです。
<?php
$result = mecab_split("テスト用の文字列だよ");
print_r($result);
?>
<?php
$mecab = new MeCab_Tagger();
$nodes = $mecab->parseToNode("テスト用の文字列だよ");
foreach($nodes as $node){
    echo $node->getId()."<br />";
    echo $node->getSurface()."<br />";
    echo $node->getStat()."<br />";
    echo $node->getLength()."<br />";
    echo $node->getFeature()."<br />";
}
?>

短縮URL展開用のAPIをリリースしました

| カテゴリ:Web・IT

スクリーンショット

前日の日本語形態素解析APIに続き、開発者向けに短縮URL展開用APIをリリースしました。


短縮URL展開API■140note


短縮URLを短縮前のURLに展開するAPIです。


いまさら説明は不要かと思いますが、短縮URLとは本来のURLをt.cogoo.glbit.lyp.tl等で短く置き換えたものです。


本APIはurlが2重、3重に短縮されているときも動作します(A→bit.ly→t.coのようなケースでも、t.coからAを一発で導きます。ただし代表的な短縮サービスのみです)。


これからしばらくはAPIを充実させていく予定。
その方が、今後のコンテンツ制作がスムーズに行きそうなので。

スクリーンショット

開発者向けに形態素解析(字句解析)用APIをリリースしました。

日本語形態素解析API■140note

その名前の通り、日本語の形態素解析を行うAPIです。
文章を最小単位の言葉で分割します。


表層形、品詞、品詞細分類、活用形、活用型、原形、読み等を返します。
詳しい仕様はAPIの説明ページでご確認ください。
その場で試してみることもできます。


形態素解析エンジンはMeCab(和布蕪)です。辞書はIPAdic並びにWikipediaのデータを元としたユーザー辞書を用いています。


まだまだ納得いく結果は返してくれないですが、今後徐々に改善して、少しはマシに……。


140noteにて使用する目的で作られたAPIではありますが、本APIそのものとTwitterはまったく関係ありません。


よければご活用ください。


以下、本APIを作った経緯等。


140noteの人気コンテンツであるあなたの恋人等では形態素解析のためにYahoo!デベロッパーネットワークのAPIを用いています。
(無料で使える上に制限も緩く、とても素晴らしいAPIです!)


YahooのAPIそのものにはまったく不満がないのですが、ただ、自前で形態素解析ができるようにしたいということは前から考えていました。
無料サービスに頼りすぎるのはリスクがあるので。


それで140note用に形態素解析を用意しまして、せっかく作ったのだから一般に公開してしまおうかなと。


なにかあれば私のTwitterアカウントにでも気軽に連絡ください。

スクリーンショット

140noteにて新コンテンツをリリースしました。


つぶやきURL抽出です。


タイムラインからURLを含むつぶやきだけを抽出し、そのURLの概要(概要画像含む)が取得できれば合わせて表示します。


また、各URL毎にブックマークサービス、SNSサービスへの投稿ボタンを設置しています。

とりあえず現在は、twitterpocketStumbleUponfacebookevernotetumblrdeliciousはてなブックマークの八つです。
ボタン設置はAddThisを利用しています。


情報取得にはOpen Graph Protocol helper for PHPに手を加えたものを使わせてもらっています。


対象とするつぶやきはTwitterのAPI仕様に基づき上限があります。
フォロー数が多くてつぶやきが流れていってしまう人はリストをご活用ください(Twitterで作成したリストをそのまま使えます)。


以下、本コンテンツリリースに至った経緯、というか、意図。


ネットの世界は情報に溢れています。
そこからいかに自分にとって有益な情報を得るかというのが、Web開発の世界において、もう長年にも渡って(そしておそらくこれから先も)一つの大きなテーマとなっています。
そのテーマへの取り組みとして、まとめやソーシャルブックマークサービス、キュレーション系のサービスが次々と誕生してきました。


私の場合、一番欲しい情報はTwitterの自分のタイムラインから発見することが多いです。
(その情報元の多くは上記のまとめサイトやブックマークサービスだったりするのでしょうが)


それはきっと、自分のタイムライン上が一番高精度に私の好みを具現化してくれているということであり、同時に、たいしてTwitter以外を見ていないからでもあると思います。
だって、いくつもいくつもサイトを見るの、疲れるので……。
そんなにいたるところにアンテナ張り巡らせるとばてちゃいます……。


ただ、Twitterはいい情報源となっているのですが、少なくとも私は、常時流れ続けるつぶやきのすべてに気を配ることはできません。
クリックせずただ読み流したURLに実は欲しい情報があったかもしれない。


とか、いろいろ考えて作ったのが今回のコンテンツです。


ログインするだけで使えるので、まずはぜひ一度使ってみてもらいたいです。
意見、感想等は気軽に私のTwitterアカウントまでどうぞ。


よろしくお願いします。

1

概要

青春B運営メンバー多口カタンによる雑記blogです。
自己紹介はこちら。開発物をまとめたものはこちら
 
ヘッダーイラストはkojiさん制作です。
感想・意見・要望等ありましたら気軽にフォームにてコンタクトくださいませ。
 
Twitterはじめましたので誰でも気軽に声かけてくださいね。