Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading…
Transcript

chasen.org つまり、

TinySegmenter も

mecabの作者、工藤さんの作品ですね。

すごい。

科学の力ではどうしようもできない、魑魅魍魎などの奇怪な輩に立ち向かう胡散臭い男。

ところでどうやって

実装されているんだろうか。

なんぞこれ!

神は言っている。

ここで諦めるべきではないと。

~途中中略~

TinySegmenterは機械学習のみを使って分かち書きを行います。

TinySegmenterは入力文すべての文字について、 文字の前が単語境界かどうかを、文字、文字N-gram、ひらがな・カタカナといった文字種情報とその組み合わせを特徴量として使いながら、 学習・分類しています。

学習データにRWCPコーパスを使っているので、新聞記事には強いですが チャットやブログといったくだけた文、ひらがなだけの文の解析精度は高くありません。

~途中中略~

TinySegmenterは、実装も容易でモデルの圧縮率もいいBoostingを使っています。

そもそも、

boosting って何?

詳しい人がいたら

教えてください。

実装は COM の話

になってしまうので

省略します。

IWordBreaker の

Interface が公開されていない。

→ indexsrv.h を include すると OK

CLSID がOSによって違う

→ NLG.Japanese Wordbreaker

文字列指定 で OK

呼び出し方法は?

→ IWordBreaker の他に

TEXT_SOURCEとIWordSink が必要。

IWordSinkでコールバックさせる。

まとめ

mecab以外の

わかち書きエンジンを

見てきました。

ここまで見てきて、

思ったと思います。

mecabでいいぢゃんw

自己紹介

mecab / 以外 / の

/ わかち書き

名前: rti

特徴: 数式嫌いなのに

データマイニング好き

肩書き: シーランド公国伯爵

@super_rti

http://rtilabs.net/

by rti

プレゼンとか

数式を一切使わないSVMの話(データマイニング)

新潟アクセス修飾子 (php)

SEXYHOOK (C++)

萌え萌えCSS (javascript)

わかち書き

mecab

日本語データでなんかしたい時にお世話になる、わかち書き。

超有名。

いつもお世話になってます。

そんな装備で大丈夫か?

そんな / 装備 / で / 大丈夫 / か / ?

TinySegmenterの移植

利点

Mecab

性能比較

javascript(オリジナル)

mecab以外のわかち書き

TinySegmenter

TinySegmenter

IWordBreaker

科学 | の | 力 | で | は | どう | しよう | も | でき | ない | 、 | 魑魅魍魎 | など | の | 奇怪 | な | 輩 | に | 立ち向う | 胡散臭い | 男 | 。

http://chasen.org/~taku/software/TinySegmenter/

perl

http://search.cpan.org/dist/Text-TinySegmenter/

原文

TinySegmenter

javascript だけで実装された

わかち書き。25kバイト

mecab以外に、

日本語文章をわかち書きする

フリーのソフトはないの?

php

ちみもうりょう

http://www.programming-magic.com/20080816010106/

辞書レスでのわかち書きが可能。

サイズが超絶小さい 25kバイト。

辞書レスなので未知語にも強い。

各言語にポートティングされている。

python

科学 | の | 力 | で | は | どう | しよ | う | も | でき | ない | 、 | 魑魅 | 魍魎 | など | の | 奇怪 | な | 輩 | に | 立ち向かう | 胡散 | 臭い | 男 | 。

http://chasen.org/~taku/software/TinySegmenter/

http://www.programming-magic.com/20080726203844/

VBA

http://pub.ne.jp/arihagne/?entry_id=2768818

Objective-C

http://blog.bornneet.com/Entry/276/

java

http://code.google.com/p/cmecab-java/source/browse/trunk/src/net/moraleboost/tinysegmenter/TinySegmenter.java

rtiバージョン制約

... etc ...

C++

http://code.google.com/p/tinysegmenter-cpp/

非正規表現で動作

↑ C++ に移植してみた。

Windows SJIS に最適化

注意:

UTF-8の場合、

文字の区切りを教える必要あり。

Mecab

性能比較

科学 | の | 力 | で | は | どう | しよう | も | でき | ない | 、 | 魑魅魍魎 | など | の | 奇怪 | な | 輩 | に | 立ち向う | 胡散臭い | 男 | 。

特徴

IWordBreaker

COMなので

いろんな言語から呼べます。

IWordBreaker

原文

科学の | 力では | どう | しようもできない | 、 | 魑魅 | 魍魎などの | 奇怪な | 輩に | 立ち向かう | 胡散臭い | 男 | 。

windows標準搭載のわかち書き

科学の力ではどうしようもできない、魑魅魍魎などの奇怪な輩に立ち向かう胡散臭い男。

windows のテキストサーチ(index service / windows search)とかに使われている?わかち書きエンジン。

windows 2000以上から標準で搭載。

COMで呼び出すことが可能。

COMはすごい共有ライブラリ

みたいな感じです

呼び出し方法

結構、大まかな分け方をしてくれる。

vb

http://wiki.dobon.net/index.php?.NET%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%B8%A6%B5%E6%2F98

C#

理屈上

COMをサポートしている

すべての言語からは呼べるはず?

C++で実装してみた。

http://d.hatena.ne.jp/rti7743/20100314

AdaBoost

はまりどころ。

http://ja.wikipedia.org/wiki/AdaBoost

作者のページの技術的な話 より

windows標準搭載なので、

環境縛りや、

オープンソース禁止縛り、

などの縛りプレイを

している人には便利かも。。。

http://chasen.org/~taku/software/TinySegmenter/

ごめん無理

Mecab

科学 | の | 力 | で | は | どう | しよう | も | でき | ない | 、 | 魑魅魍魎 | など | の | 奇怪 | な | 輩 | に | 立ち向う | 胡散臭い | 男 | 。

よくわからないと

いうことが

わかった。

TinySegmenter

科学 | の | 力 | で | は | どう | しよ | う | も | でき | ない | 、 | 魑魅 | 魍魎 | など | の | 奇怪 | な | 輩 | に | 立ち向かう | 胡散 | 臭い | 男 | 。

弱い奴らでも、

結束して、束になってかかったら、

強い奴にも勝てるかもしれない。

orz

>_< ギャー

勝てない...

(#゚Д゚)

返り討ちに

してくれる。

IWordBreaker

ブースティング(英: Boosting)とは、教師あり学習を実行するための機械学習メタアルゴリズムの一種。

ブースティングは、Kearns の提示した「一連の弱い学習機をまとめることで強い学習機を生成できるか?」という疑問に基づいている[1]。

弱い学習機は、真の分類と若干の相関のある分類器と定義される。対照的に、強い学習機とは真の分類とよく相関する分類器である。

科学の | 力では | どう | しようもできない | 、 | 魑魅 | 魍魎などの | 奇怪な | 輩に | 立ち向かう | 胡散臭い | 男 | 。

http://ja.wikipedia.org/wiki/%E3%83%96%E3%83%BC%E3%82%B9%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0

mecabでいいぢゃんw

ですよねー

ありがとうございました。

Learn more about creating dynamic, engaging presentations with Prezi