タグ

ブックマーク / chasen.org/~taku (9)

  • きまぐれ日記: MeCabがiPhone,OSXに載っていると言うのは止めようと思う

    iPhoneのSDKの条項に変更が加わり、Flashのクロスコンパイルを含む 純正開発ツール以外で作成されたバイナリの配布が禁止となるようです。 世間でも散々言われていますが、この変更は正直とても残念です。 Apple的には「製品のクオリティーが保てないから」という理由だそうですが、 WindowsiTunesが意味もなくQuickTime入れたり、Windows非標準のUIを 使いまくっていて、お世辞にもクオリティーが高いとは言えないのを棚にあげて、 クオリティー云々と言い訳できるのでしょうか。アプリなんて所詮 玉石混淆。決めるのはユーザです。 MeCabは以前GPL/LGPLでした。Appleを含む複数の方からこのライセンスでは 使いにくいと言う指摘をうけ、前職の同僚と協議をしながらBSD/LGPL/GPL のトリプルライセンスにしたという経緯があります。結果としてこの変更は うまく

  • きまぐれ日記: sudo のGUIダイアログはセキュリティ的に大丈夫なのか?

    UbuntuやMac OSXを使っていると、権限の高いオペレーションを実行しようとしたときに、ユーザのパスワードを要求するダイアログが起動します。毎回ハイハイと思いつつ入力しているのですが、ふと考えるとこのセキュリティモデルというかユーザビリティー的に大丈夫なのかどうかと思うようになりました。 例えば、インストーラーでダミーのパスワードダイアログを表示させればマルウェア作者はユーザのパスワードを取り放題だし、OSのファイル保存ダイアログをクラックして、適当なファイル保存のタイミングで同ダイアログを出せば、無知なユーザはホイホイパスワードを入力してしまうのではないでしょうか。Webサイトのフィッシングと全く同じ話です。 このダイアログはそもそも CUIプログラム sudo のラッパーにすぎません。しかし、話はそんなに単純ではありません。CUIの場合は、ほとんどの操作が「能動的」なために、su

  • きまぐれ日記: 「ハードウェア」プログラマと「ソフトウェア」プログラマ

    プログラマ・ソフトウェアエンジニアと呼ばれる人間には、 2つのタイプがあるような気がしています。 ひとつは、もともと機械いじりやハードウェアが好きな 「ハードウェア」プログラマ、もう一つはその反対の「ソフトウェア」プログラマ。 それぞれどういう特徴があるか、独断と偏見でまとめてみました。 (私自身ハード出身なのでそちらに偏重していますw ) 「ハードウェア」プログラマ 「最適化」という言葉が好き 外的な制約(メモリ/速度/ディスク)がある方が燃えるし、真の能力を発揮できる 逆に制約がないと何していいのかわからず、平凡なアイデアしか思いつけない 開発言語は、制約から決定する O(n) の計算量でも、その定数項を気にする 専用ハード好き (地球シミュレータ, メーンフレーム) 定量評価ができないような仕事は興味ない 固定長データ バイナリデータ 再帰なんてもってのほか スピード狂 CPUがどれ

  • TinySegmenter: Javascriptだけで実装されたコンパクトな分かち書きソフトウェア

    TinySegmenterはJavascriptだけ書かれた極めてコンパクトな日語分かち書きソフトウェアです。 わずか25kバイトのソースコードで、日語の新聞記事であれば文字単位で95%程度の精度で分かち書きが行えます。 Yahoo!形態素解析のように サーバーサイドで解析するのではなく、全てクライアントサイドで解析を行うため、セキュリティの 観点から見ても安全です。分かち書きの単位はMeCab + ipadicと互換性があります。 デモ 日語の文章を入力し、解析ボタンをクリックしてください。 ダウンロード TinySegmenterはフリーソフトウェアです. 修正BSDライセンスに従ってソフトウェアを使用,再配布することができます. Download TinySegmenter version 0.2 使い方 <script type="text/javascript" src

    yokochie
    yokochie 2008/02/09
    Javascript実装ってどんだけー。 は | て | なから | 来 | まし | た
  • きまぐれ日記: AjaxIMEのHTTPサーバは pre-pthread

    C++と Pthreads でミニマルなHTTPサーバを書く にて、ネットワークサーバのさまざまな設計・実装方針がまとめられています。 1. クライアントごとに fork 2. 事前に fork - 各プロセスで accept 3. 事前に fork - ファイルロックで accept を保護 4. 事前に fork - Mutex ロックで accept を保護 (PTHREAD_PROCESS_SHARED) 5. 事前に fork - ソケットディスクリプタパッシング 6. クライアントごとにスレッド生成 7. 事前にスレッド生成 - Mutex ロックで accept を保護 8. 事前にスレッド生成 - メインスレッドで accept AjaxIMEの変換エンジンは自作サーバで運用しているのですが、初期の実装は prefork、 すなわち4番の実装でした。 その後、fork の部

  • きまぐれ日記: Yahoo!の形態素解析をMeCabで無理やり再現してみる

    MeCabで形態素解析器を作りたい場合は以下の二つの言語リソースが必要です。 1. 辞書 (単語と品詞のペアの集合) 2. 入力文と、それに対応する正解出力ペア(正解データ) 現在公開している mecab-ipadic は、ipadicとRWCPコーパスという正解データを使っています。 ここから分かるとおり、少なくともMeCabを使う場合は、コスト値を丹念にチューニング するといった職人芸は要りません。形態素解析への入力文とそれに対応する(理想)出力 があればコスト値を機械学習的なアプローチで構築することができます。 さらに、正解データを人手で作る必要は必ずしもありません。 すなわち、Yahoo!形態素解析器の出力結果を「擬似正解」とみなして MeCabの学習プログラムを走らせれば、Yahoo!の出力を高い精度で再現できる MeCab用辞書を作成することが原理的に可能です。 ふだんはあま

  • きまぐれ日記: ルー語変換を MeCab だけで実現

    巷で話題のルー語変換.周りにこういうしゃべり方をする人がいるからかもしれませんが, 爆笑しました 中身は,MeCab -> EDICT -> Bilingual Emacspeak だそうです. 単純な単語置換なので,MeCab を汎用テキスト変換ツールとして利用すればまったく同じことが MeCab だけで実現できます. やってることは単純で, MeCab の辞書の品詞フィールドをルー語にした辞書を作るだけです.対象のルー語がない場合は単語そのものを品詞に設定します. 通常は 「入力文字列 -> 品詞列」 の変換が行われます.上記のような辞書を作ると,品詞の部分がすべてルー語に置き換わって 「入力文字列 -> ルー語文字列」の変換が実現されます. しかも単語のつながりやすさや,出現しやすさは上記のような辞書を作っても CSV カラムの 2,3,4 カラム目に残っているので, 原理的には M

    yokochie
    yokochie 2007/01/03
    おちゃめ
  • きまぐれ日記: やっぱり SWIG が好き

    http://d.hatena.ne.jp/lestrrat/20060713#1152777605 なぜ私がSWIGを勧めるのかというと, エンジニアが身につける道具としてSWIGの投資効果が 高いからです. SWIGは, バインディングを「キッチリ」作る道具というよりはむしろ今ある問題を「サクっと」片づけるのに向いています. In-house の仕事や personal use もいいでしょう. C/C++ とスクリプト言語, 両方使っている方組織は, この機会にSWIGを導入してみるのはいかがでしょうか. 私だけかもしれませんが, スクリプト言語とC/C++ にはもやもやとした誤解を感じます - バインディングの作成は, 言語依存で複雑なフレームワークの修得が不可避 - C/C++ はある程度触れるけど, バインディングって敷居高そう - とりあえず誰かがバインディングを作っていない

  • http://chasen.org/~taku/blog/archives/2006/05/textmecab.html

  • 1