白猫のメモ帳

C#とかJavaとかJavaScriptとかHTMLとか機械学習とか。

Java

ベイジアンフィルタでニュースのカテゴリ分けをしてみる

こんばんは。ここ数日は涼しい日が続きましたが、明日からまた暑いようですね。 秋の気配は微妙でも、お店の品揃えはあっという間に秋モードです。 さて、今日はベイジアンフィルタを使って文章のカテゴリ分けをしてみようかと思います。迷惑メールフィルタ…

enum+ラムダ=おしゃれ

こんばんは。オリンピックが始まりましたね。 夜更かししすぎないように気をつけねば。 ところで、enumって便利ですよね。 使いますよね。 数が限られているようなときに便利です。 Java7でStringがswitchに対応したので、switchに使えるというメリットはち…

単純パーセプトロンをJavaで作る その③

こんばんは。関東甲信越も梅雨明けして、いよいよ夏本番ですね。 学生さんは夏休みを満喫していますでしょうか?さて、単純パーセプトロンについての記事の3つ目です。その① 機械学習の基本とパーセプトロンでできること その② 単純パーセプトロンの仕組みを…

単純パーセプトロンをJavaで作る その②

こんばんは。歩きながらスマホを見るのは危ないのでやめましょうね。さて、単純パーセプトロンについての記事の2つ目です。その① 機械学習の基本とパーセプトロンでできること その② 単純パーセプトロンの仕組みを簡単に解説 ←今回はコレ その③ 単純パーセプ…

単純パーセプトロンをJavaで作る その①

こんばんは。猫が網戸を開けるので、家の中に蚊が入って困っています。 さて、今回は単純パーセプトロンを作ってみようと思います。 が、あれもこれもと書いていたら結構長くなりそうなので3つの記事に分けます。その① 機械学習の基本とパーセプトロンででき…

WhileStreamってないの?

こんばんは。今日から数日は少し涼しいみたいですね。 30℃を超えると仮死状態になるので、ありがたいです。 最近ちょっと自然言語処理をしたかったのでKuromojiを使っているのですが、 JapaneseTokenizerがstream化できなくてなんかもやもやするんです。やっ…

ラムダ内の例外処理はもう少しおしゃれであってほしい

こんにちは。今日から3連休ですね。 学生の皆様はもうそろそろ夏休みでしょうか? さて、タイトルの通りなのですが、 Javaでは言語仕様上、ラムダ内での検査例外を投げることができないので、 せっかくのラムダが全然おしゃれじゃない感じになってしまいます…

ラムダを引数にとるメソッドのオーバーロードってどうなるの?

こんにちは。そんなに雨が好きなわけでもないですが、 こう暑さを実感すると、雨が降っていても涼しい方が幸せな気がします。 水不足ですしね。さて、タイトルの通りです。 関数インタフェースのラッパーをつくろうかと思ったら、参照があいまいとか怒られて…

k近傍法をJavaで実装する

こんばんは。暑いですね。 とろけてしまいそうです。さて、前回は最近傍法を試してみましたが、今回はk近傍法を実装してみましょう。別のクラスにしてもいいのですが、 最近傍法はk=1ですので、共通化しておきましょう。kはコンストラクタ引数で渡すことにし…

最近傍法をJavaで試してみる

こんばんは。最近はちょっと機械学習を勉強している私です。機械が学習できれば私は学習しなくていいんですよね。 すばらしいです。 そのために私は勉強します。・・・ん?さておき、とりあえず最初は機械学習アルゴリズムの中でももっとも単純な(ってWikip…

「JJUG CCC 2016 Spring」 に参加してきました

わ、ひさしぶりすぎる。イベントレポートとか書いたことないのですが、 「ブログに書くまでがイベントです」とのことなので。前回「2015 Fall」に続いて2回目の参加になります。 写真撮ったり熱心にメモってたわけでもないので、さっくりと。 詳しくはきっと…

インタフェースのデフォルト実装を使えばenumに共通メソッドを作れるんじゃないの?って話

しばらくPlayFrameworkについて書いてましたが、たまには別のテーマを。 Javaのenumはなかなかに便利なのに、あまり使っているのを見掛けないのは何故なのだろう。 SingletonパターンやStateパターンなんかにはなかなか良いような気がするのだけれど。ただこ…

Play Frameworkで遊びたい④

続き。文字化け編こんな編作りたくなかった…。 ①DBの文字化けを何とかするとりあえずデータを表示してみようと思ったら文字化けした。 A5で2バイト文字を入れて、テーブルを開きなおすとすでにおかしい。1. 現在の文字コード設定を確認するmysqlコンソールで…

Play Frameworkで遊びたい③

続き。EclipseからrunしたらCtrl+Dで止まらないのでバッチを作りました。 でも、エラーはEcliseコンソールに出てほしい人だから、 PIDでjava.exeをkillするバッチを作って無理やり止めてもいいかもしれない。 さておき。今回の目標 「DBアクセスができるよう…

Play Frameworkで遊びたい②

続き。Eclipse使わないとJava書けない人なので、 とりあえずEclipseで編集できるようにするところまでやってみる。 ①Eclipseプロジェクト化「eclipse」コマンドを実行する。 [playPractice] $ eclipse が、なんかエラーが出て実行できない。 エラーメッセー…

Play Frameworkで遊びたい①

あ、どうもお久しぶりです。 いろいろと忙しくて完全に放置でした。最近ちょっとPlayFrameworkというのが気になっているので、 導入してみます。さてじゃあとりあえずインストールしてみますか。 ①JDKをインストールするこれは面倒なのでまぁどこかで調べて…

ワンライナーで書きたい

昨日のコードをJava8という武器を無駄に使ってワンライナーで書きたい。 public class PivotUtil2 { /** * 旋回する */ public static <S, T, U, V extends Pivotable<S, T, U, V>> List<V> pivot(List<V> table) { return table.stream() .collect(Collectors.groupingBy(v -> v.groupBy())) .values().stre</v></v></s,>…

JavaでOracleのPivotみたいなことがしたい

太郎くん、次郎くん、三郎くんはテストの点数を競争していました。しかし、総合点ではなく各教科の点数でそれぞれ順位を決めたくなったため、 集計の方法を変更しました。 このとき、このデータをデータベースに登録していたとすると、 いままで主キーが「人…

Javaで遅延計算

丸めのタイミングって結構問題になることが多くて、 あとから設定できたらいいなと思ったりする。あとついでにそこまでの計算結果が見えたらいいのになとか思って作ってみたもの。 package practice; import java.math.BigDecimal; import java.math.Roundin…

Javaで分数ってどうやって扱う?

ApacheCommonsにFractionという分数モデルがあるらしい。自分で実装してみようかと思って考えていたのは、1. 分子と分母を素因数分解して保持する 2. 素数の取得にはメモ化を利用するってすると約分とかしやすくて、そこそこ早いかなとか思っていたけれど、 …

Mapを一気に初期化したい

たまにマッピング自体を定数で持ちたかったりする。 でもMapはいまいち初期化しづらい。 staticイニシャライザとかでやるのが一般的?こういうのを作って public class MapBuilder<K, V> { private Map<K, V> map = new HashMap<K, V>(); public MapBuilder<K, V> put(K key, V value</k,></k,></k,></k,>…

Arrays.asListは固定長ですよ?

equalsAny - 白猫のメモ帳前回のエントリで何気なくでてきたArrays.asList。 仕様を知らないと意外とはまり、そして仕様を確認してもう一回はまるという代物。どういうことかというと、このメソッドで作ったリストはaddやremoveができない。 これらのメソッ…

equalsAny

意外とないみたい。 public static boolean equalsAny(String str, String... strs) { return Arrays.asList(strs).contains(str); } 第一引数が第二引数以降に含まれるかっていうのはいまいち微妙な引数の取り方なので、 普通に定数をAsListの中に並べたほ…

SimpleDateFormatが変?

日付判定ってよくある話だと思うのだけれど、 よくわからないところでtrueになったりする。 「2014032あ」が日付っていうのはさすがにどうなんだろうか。ちなみに format.setLenient(false) は厳密チェックをするかどうかの設定。 public static void main(S…