Translate

2017年2月3日金曜日

IBM Watson NLC と TensorFlow で実装した簡単なCNN モデルを比較してみた


IBM Watson の NLC は
1000文字までの文章と分類名のペア
を学習データとして投入した分類器を作成できる
サービスだ。

最近は日本語書籍も出ており、
Watson Toolkitという
curlを打てなくても使えるお手軽さ
はよくできているとおもう。

NLCの裏側はオープンになっていないので
どんなアルゴリズムでどんな事前学習が行われているかは
APIを活用するユーザ側にはさっぱりわからない。

巷の評価は、いわゆるオープンなデータセットをつかっていて
それを元に比較しているので、
どうも

「催眠術師の仲間から選んだ人に催眠術を書ける術士」

みたいで眉唾だ..

ということで、
データセットをコッチで用意した。

某テキストの文章を1文づつ切り出し、
その文章の分類名を、全セクション134で切り分けてみた。

学習データ(X_train, y_train):2000件
バッチ用テストデータ(X_test, y_test):140件
評価用データ(X_eval, y_eval):55件

とかなり少ないが、
実際にNLCと
データ編集が比較的近くてやりやすい
https://github.com/tkengo/tf/tree/master/cnn_text_classification
のサンプルコードを使って
評価用データの

・正解率
 最も頻度が高い分類が合致した件数を、全質問数う(55)で割ったもの

・正解選択ヒット率
 トップ10までにある場合は、荷重づけした特点を
 F1の1位から10位までのポイント制で1を按分した数加えたスコアを、
 全質問数(55)でわったもの。

の二つを出してみた。




..正直、おはなしにならんくらい独自実装のほうが使い物にならん

どうもこのデータセットだと
分類種類の多さにくらべデータ件数が少なすぎるようで
ちっとも学習できていない..

これじゃIBM社員を、ますまずその気にさせてしまう..


でも..
箸にも某にもつかないダメデータセットでも
それなりの成績を出すNLCの事前学習度合いが
箱入り娘級の調教具合..

有償サービスにするにはこれより良い成績ださないと
話にならないか...

0 件のコメント:

ClaudeをOpenAI O1のように思考させるDifyサンプルを試す

 Difyの「探索」タブにはさまざまなサンプルが載っており、その1つに「Thinking Claude (OpenAI O1 Alternative)」というものがある。   このサンプルがどういうものか、未だに自分でも解けない以下の問題をためしに聞いてみることにした。 『人類の...