GooglePlayからレビュー取得
形態素解析はできるようになった.
次は色々処理する対象を取得しなければならない. 学生の頃はAmazonのレビューを泥臭い方法(wget)で取得していたが, さすがにそんなことはもうしたくない...
今時,レビューってどこに集まるかな?ということで, AppStore系だろうと考え,ひとまずGooglePlayからレビューを持ってくるようにしてみた.
AndroidMarketAPIというオープンソースライブラリがあったので, ありがたく使わせていただくことに.
以下のコードで,無事アプリのレビューを取得できました. importが半端なのは,気にしない.
import com.gc.android.market.api.MarketSession; import com.gc.android.market.api.model.Market; import java.util.List; public class AndroidMarketAPI { public static void main(String args[]) { MarketSession session = new MarketSession(); session.getContext().setAndroidId("0123012301230123");// ここはよくわかってない session.getContext().setDeviceAndSdkVersion("passion:8");// ここもよくわかってない session.getContext().setVersion(1002012);// ここもっとよくわかってない session.login(/*Googleアカウント*/,/*パスワード*/); Market.CommentsRequest commentsRequest = Market.CommentsRequest.newBuilder() .setAppId(/*アプリのID*/) .setStartIndex(0) .setEntriesCount(10) .build(); session.append(commentsRequest, new MarketSession.Callback<Market.CommentsResponse>() { @Override public void onResult(Market.ResponseContext context, Market.CommentsResponse response) { List<Market.Comment> comments = response.getCommentsList(); for( Market.Comment comment : comments ) { System.out.println(comment.getText()); } } }); session.flush(); } }
javaでMecab
Java系言語,あわよくばWebフレームワーク系の勉強のために,何か作ろう思ってネタはないかと思っていたところ,ふと学生時代にやってた自然言語処理をやってみようと思いつく.
ちょっとMakefileをいじりつつ(64bit向けビルドしたり,JDKのパスをあわせたり)導入し, 無事以下のコードが動作しました.
import org.chasen.mecab.Tagger; import org.chasen.mecab.Node; public class main { public static void main(String args[]) { Tagger tagger = new Tagger("-Ochasen"); Node node = tagger.parseToNode("すもももももももものうち"); for(; node != null; node = node.getNext() ) { System.out.println( node.getSurface() + ":" + node.getFeature() + "\n"); } } static { System.loadLibrary("MeCab"); } }
結果は以下.
:BOS/EOS,*,*,*,*,*,*,*,* すもも:名詞,一般,*,*,*,*,すもも,スモモ,スモモ も:助詞,係助詞,*,*,*,*,も,モ,モ もも:名詞,一般,*,*,*,*,もも,モモ,モモ も:助詞,係助詞,*,*,*,*,も,モ,モ もも:名詞,一般,*,*,*,*,もも,モモ,モモ の:助詞,連体化,*,*,*,*,の,ノ,ノ うち:名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ :BOS/EOS,*,*,*,*,*,*,*,*
次はどうしようかな.どこかから素材になる文章をひっぱってこようか. それともScalaから使ってみようか.