MySQL (5.1 and later) full-text parser plugins collection. This collection provides bigram, mecab , space, snowball and suffix parser. If you want to use Chinese or Japanese, bigram plugin might be useful.
先日ですが Yahoo!デベロッパーネットワーク - テキスト解析 - キーフレーズ抽出 なる API が公開されました。 この API を駆使すれば個人でも Google AdSense のようなコンテンツマッチ広告すらできちゃいそうなシロモノです。この手の技術に興味がある僕からすれば、コンテンツマッチ技術の根幹の技術を、よくもまぁ無料の API で公開したものだなぁ〜 Yahoo! って太っ腹だなぁ〜と唯々感心するばかりです。 さて、どうせなので、コンテンツマッチの技術についてもう少ししゃべってみます。 基本的に”とあるページ”にコンテンツマッチの”何か”を表示するロジックはこんな感じ。 ”とあるページ"(解析対象)”の html を取得 html 全体から本文抽出 特徴語抽出(キーフレーズ抽出) 特徴語をベースに”表示する何か”を類似度順にソート(例えばコサイン距離とか) ”とあるペ
MeCabは形態素解析のためのソフトウェアです。日本語を分かち書きするために使われるものとしては最も人気の高いものだと思われますが、チャットや掲示板に書き込まれるような崩した日本語や、正しく書かれた日本語でも新語を期待した通りに分かち書きしてくれないことがあります。これはMeCabの内部で使われている辞書が一般的な言葉を情報源としているわけではないことに関係があります。MeCabというか、より一般的な話ですが以下のような認識が一般的かと思われます。 というのも、一番広く使われているであろう自然言語処理技術は形態素解析(単語分かち書き、と言ったほうがいいのかもしれない)であろうが、これは現在99%くらいの精度になっていて、すでに人間がやるより遙かに高精度で行えるのだが、これだけ高い精度が出せるのは新聞記事を相手にしたときだけであって、それは新聞記事をコーパスとして用いる機械学習により形態素解
今、手元で検索サービスを作成するためにいろいろ実験をしているのですが、ある程度ノウハウが貯まったので公開しておこうかと思います。長いエントリーになりますので、検索サービスの構築に興味がある人だけ閲覧下さい。 一般的な検索エンジンは主に2つのパートに別れます。一つは、クローラとインデクサからなるデータを収集するバックエンド、もう一つは検索を行うフロントエンドです。クローラとインデックス部分に関してはまだ手元で試しているところなのです紹介できる状態にないのですが、Pythonを用いたフロントエンドに関しましては、だいたいやり方がわかってきたので、ここで公開しておこうと思います。個人レベルが作れそうな検索サービスの構築に興味がある方はよんでいただければ幸いです。 [追記]クローラ部分は時間がかかりそうなので、インデクサ部分を公開しました。 全文検索エンジンLuxのboost-pythonを用いた
適当な単語群を含む辞書があったとします。「京都の高倉二条に美味しいつけ麺のお店がある」*1という文章が入力として与えられたとき、この文章中に含まれる辞書中のキーワードを抽出したい、ということがあります。例えば辞書に「京都」「高倉二条」「つけ麺」「店」という単語が含まれていた場合には、これらの単語(と出現位置)が入力に対しての出力になります。 この類の処理は、任意の開始位置から部分一致する辞書中のキーワードをすべて取り出す処理、ということで「共通接頭辞検索 (Common Prefix Search)」などと呼ばれるそうです。形態素解析、Wikipedia やはてなキーワードのキーワードリンク処理などが代表的な応用例です。 Aho Corasick 法 任意のテキストから辞書に含まれるキーワードをすべて抽出するという処理の実現方法は色々とあります。Aho Corasick 法はその方法のひと
新はてブ正式リリース記念ということで。もうリリースから何週間も経っちゃったけど。 新はてなブックマークではブックマークエントリをカテゴリへと自動で分類しているが、このカテゴリ分類に使われているアルゴリズムはComplement Naive Bayesらしい。今日はこのアルゴリズムについて紹介してみる。 Complement Naive Bayesは2003年のICMLでJ. Rennieらが提案した手法である。ICMLというのは、機械学習に関する(たぶん)最難関の学会で、採択率はここ数年は30%を切っている。2003は119/371で、32.1%の採択率だったようだ。 Complement Naive Bayesの位置づけは 実装が簡単 学習時間が短い 性能もそこそこよい という感じで、2003年段階にあっても、絶対的な性能ではSVMに負けていた。しかし、学習が早いというのは実アプリケーシ
全文検索エンジンのgroongaをテストリリースしました。 groonga 本日開催された、key-value store勉強会で発表させていただきました。 今まで、Sennaには Tritonn経由で使った場合、MySQL側のインデックスとの併用が難しく、Senna本来のパフォーマンスが発揮できなかった。 従来のインターフェースでは、トークナイザの切り替えなどの柔軟性がなかった。 といった問題がありました。 groongaは、それに対する返答です。 自分でデータベース書けばいいんじゃね? 柔軟なAPI用意すればいいんじゃね? ってことですね。 データベースは、key-valueストアを組み合わせたcolumnストア的な感じになっています。 詳細については、今後別エントリやドキュメントで述べます。 今後は、Sennaはバグ修正のみ行うメンテナンスモードに移行します。 実際使ってみよう 今回
_ [Ubuntu][Arch] Dropbox オンラインストレージのDropbox。 XubuntuなのでNautilusなんて入ってないから、アカウントだけ取って放置していた。 んが、TipsAndTricks/TextBasedLinuxInstall - Dropbox Wiki を見かけた。 "Text Based Linux"でいけるのであれば、何でもいけるだろうということでやってみる。 あらかじめ、Dropboxのアカウントと、 wget gcc Python ブラウザ が必要。 んで、必要なファイルを落としてアーカイブを展開するため~/に移動して、 % wget -O dropbox.tar.gz http://dl.getdropbox.com/u/17/dropbox-lnx.x86-0.6.427.tar.gz % wget http://dl.getdropbo
Long Paragraph <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vit
数週間前の話になりますが、「はてブのリニューアル会見」の記事を読んでいたところ、はてブにも「自動カテゴライズによる記事分類」の機能が搭載されるとか。。。 同じようなタイミングで「似たようなモノ」というか「ほぼ同じようなモノ」を作っていたので、すごーくインスパイアされてしまいました。ジュワ〜。(アドレナリンの放出音) 数週間たってもいまだ興奮冷めやらぬ状態なので、今日はその件について書いてみようと思います。 Lingua::JA::Categorize - a Naive Bayes Classifier for Japanese document. http://search.cpan.org/~miki/Lingua-JA-Categorize-0.00001/ 「はてブのパクリ」ではありません。「ベイジアンによる日本語テキスト分類器」を「簡単に作る」ことを目的としたモジュールです。 も
http://code.google.com/p/textutil-ja/ かなからローマ字に変換romanize.romanizeで、ヘボン式のかな⇒ローマ字変換を行う。PerlのLingua::JA::KanaをそのままPythonに移してある。 >>> from textutil_ja import romanize >>> romanize.romanize(u"さとう ひさと") u'SATOU HISATO' romanize.romanize_passportで、パスポート式(ヘボン式+α)のかな⇒ローマ字変換。こちらはLingua::JA::Hepburn::PassportをそのままPythonに移した。long_vowls_hオプションで、OU, OOのときOHに変換するかどうかを指定する。デフォルトはFalse. >>> from textutil_ja import
夏本番に向けて海に行ける体作りに励まないといかんなーと思いつつも、ついついDSのスターフォックスで遊んでしまうmikioです。さて今回は、人知れずリリースされている検索エンジンTokyo Dystopiaの概要と設計思想について述べます。 Hyper Estraierとの違い Tokyo Dystopia(以下、TDと呼びます)は、新しい検索エンジンです。しかし、私が作ったもう一つの検索エンジンHyper Estraier(以下、HEと呼びます)の後継としては位置付けていません。 Hyper Estraierの製品コンセプトは、「検索システムの需要が生じる様々なシーンで手軽に導入できる」ことです。言い換えれば、「いわゆるシロウトの人でも、お高い商用システムを買えない個人や小組織でも、ちょっとの努力で自分の要求を満たすシステムを構築できる」ことです。そのために、様々なファイル形式に対応したテ
自然言語処理+知能システム系の勉強をしたいなら、 このあたりに行くといいでしょう。 東京工業大学 奥村研究室 平成15年度未踏開発ソフトウェア創造事業blogページの自動収集と監視に基づくテキストマイニング http://shooti.jp/ に繋がるわけです 東大のコミュニティではよく「石塚研」「中川研」「辻井研」という言葉を聞きます。 石塚研究室 石塚研は知能システムを応用したアプリケーションの開発などに興味があるようです 中川研究室 機械学習勉強会やっています 辻井研究室そのメンバーでは 岡野原大輔 氏は、 この岡野原氏です。 国立情報学研究所 NIIには、国内の、特に情報検索系の研究者の3分の1はいるらしいです。 大向一輝氏はコンテンツ、インタフェースレベルの研究者ですが.... 株式会社グルコース という会社も経営しています 筑波大学 宇津呂研究室 紹介の中にははっきり書いていな
たつをさんが主催するIIR輪講の第7回に参加してきました。 (今回が初参加。誘って頂きありがとうございます!) 最初に、恒例(らしい)のnaoyaさんからの前回の復習がありました。 「転置インデックスの圧縮は、Termを保存する辞書と、Termの出現位置を保存するPostingの両方が圧縮対象で、それぞれ・・・(省略)などの方法があります」という話で、すごいわかりやすい説明だったので、これだけでもとてもためになりました。拙作のLuxではインデックスの圧縮はまだ実装していないので、5章を見ていろいろやってみようと思います。postingsに関しては、variable byte encodedが圧縮率や実装のしやすさの面でよさそうな感じがしました。 その後、本題の6章の「Scoring, term weighting and the vector space model」について担当の能登
みんな、[Senna-dev 884]のメールは読んだかな!? 全文検索エンジンSennaの新しいAPIについての素案がついに公開されました。 今までのAPIのほとんどを刷新するという 大改造!劇的ビフォーアフター的API群です(APIの匠)。 んで、この新しいAPI群で何ができるようになるのでしょうか。 簡単に言うと、 「Sennaは、データベースになります!」 といいつつも、全文検索機能を充実させるために、 データベース的機能を強化した、という感じになっておりますぞ。 データベース機能 新しいSennaでは、複数のテーブルというものを持つことができます。 テーブルは、複数のレコードを持つことができます。 レコードは、複数のカラムを持つことができます。 カラムは、ある型のデータを保持します。 一般的なRDBMSの2次元表をまずはイメージしてください。 ポイント1. レコードごとにカラムが
形態素解析→マルコフ連鎖で文章生成のサンプル2007です。 前に書いたやつはchasenを使ってましたが、今回はYahoo!のAPIの 日本語形態素解析Webサービスを利用するサンプルコードです。 幅広い環境で使えるようにPEARのライブラリとかバージョン依存する関数とか使ってません(多分) あと、応用しやすいように冗長に書いてる部分とか、Errorチェックが抜けてる部分がありますが気にしないで下さいw 実行結果が見れるサンプルもおいときますね // 解析したい文章 $text = "はじめまして、こんにちは、わたしはLanタソです\nこんにちはこんにちは!!ぼくはまちちゃん!"; $text = str_replace("\n", "。", $text); //改行を適当に。にでも変換しる //API用パラメーター $params = array( 'appid' => '**
忍者ホウゲン あなたのWEBページを方言に変換します。簡単設置が可能でボタン一つで全ての言葉が方言に。ブログやホームページの文章を全て方言に変換します。 置換したい方言を自由に選択する事が可能です。 方言の辞書は自分で作成する事が可能です。 タグをお好きな場所に貼り付けるだけで簡単に設置できます。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く