てやんでい!職人気質 株式会社ブースターテクノロジー

Slides:



Advertisements
Similar presentations
どこでも TracWiki EclipSKY こんぴろ. アジェンダ 自己紹介 Trac Wiki がいろんなところでかける! – 設計書が書ける.
Advertisements

TestLink紹介 オープンソースで日本語対応のテスト管理ツール TestLink の紹介. TestLink の概要 フリーで WEB ベースのテスト管理シス テム フリーで WEB ベースのテスト管理シス テム 直観的で使いやすい 直観的で使いやすい 「 TEF 有志による TestLink.
OpenOffice.org の独自コンパイル
自然言語処理:第3回 1.前回の確認 2.構文解析 3.格文法.
株式会社ECナビ システム本部 ECナビラボグループ 春山 征吾
PHP AV(Audio Visual) 拡張 PHP asアプリケーション
本気で導入するOpenOffice.org 3つのポイント
ヘルスケア連動型 市販薬検索システム 研究者 : 加納 えり 指導教員 : 越田 高志.
Webアプリケーション開発の 基本的なポイント
技術トピックス 2014/10.
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
高エネルギー加速器研究機構 素粒子原子核研究所 千代浩司
高エネルギー加速器研究機構 素粒子原子核研究所 千代浩司
進捗報告 M2 下村 地上系会議.
Twitterの発言に基づくウェブページ推薦システム
IO - 入出力 小西 亨.
Linux リテラシ 2006 第2回 基本コマンド2.
情報学類 吉田光男 アドバイザー教官: 山本幹雄 先生
サポート力&フィードバック力 をつけよう ~OpenOffice.orgの場合~
SQL J2EE I 第3回 /
ただで使えるソフトウェア ーインストールとお絵かきー
東京工科大学 コンピュータサイエンス学部 亀田弘之
OSC京都 2016 おーぷん万葉プロジェクト 京橋 ひよわ
コーパス言語学実践 2006年度2学期 第5回.
1.自然言語処理システム 2.単語と形態素 3.文節と係り受け
日本人の英語文章の中で「ENJOY」はどういうふうに使われているのか
3-2.データを取り出す 2004年 5月20日(木) 01T6074X 茂木啓悟.
平成19年5月19日 第3版 東京大学理学部生物化学図書室 前田 朗
形態素解析および係り受け解析・主語を判別
DixChange プロジェクト ~辞書共通化の試み~
情報処理概論Ⅰ 2007 第9回 2007/6/20 情報処理概論Ⅰ 第9回.
2009/5/22 けーちゃん カンタン  Wikiで情報共有 あいさつ 2009/5/22 けーちゃん
TA 高田正法 B10 CPUを作る 2日目 SPIMのコンパイル TA 高田正法
パフォーマンスチューニング on Rails
平成22年6月15日 図書系職員のための アプリケーション開発講習会
データベース基礎 2016年3月10日 JWord株式会社 サービス開発部 中川 陽平.
自然言語処理及び実習 第11回 形態素解析.
2004/05/13 3-4 データ型(カラムタイプ) について 発表者:藤村元彦 自然言語処理研究室.
Oracle XEを使ってみよう 初音玲.
Office IME 2010 を使う.
理学部 情報科学科 指導教官 千葉 滋 助教授 学籍番号 03_03686 内河 綾
Gmsh, Elmer, Garfield++のInstall
Tableタグによる Webブラウザでの言語処理結果の汎用表示ツール
東京大学OPAC Plus “言選Web” -関連学術用語による日本語文献情報への 簡易ナビゲーションシステム-
Q q 情報通信システムのしくみ 村川 猛彦 第2回:2007年4月18日(水) q q.
ネットショップデザイン入門Ⅰ・ⅡSEO 2013/12/18 Webデザイン入門 SEOの基本.
3-6.インデックスについて 3-7.関数と併用されることの 多いMySQLコマンド
コンピュータ概論B ー ソフトウェアを中心に ー #09 データベース (後編)
TA 高田正法 B10 CPUを作る   実験の前に TA 高田正法
7-0.SWORD Client for WEKO インストールマニュアル Version 2.2
Oracle XEを使ってみよう 初音玲.
形態素解析ドライバモデルの実装と コーパスの品詞体系変換への応用
データベース設計 第7回 実用データベースの運用例 クライアント=サーバシステム(1)
東京工科大学 コンピュータサイエンス学部 亀田弘之
3-8・関数を使ってデータを取り出す   2004年6月3日(木) 01T6010F               大北高広.
より具体的に 相手に伝えよう2.
現在完了形 特別な完了形.
Global standard programming with GNU Autotools
再帰CTE を使って遊ぼう 大阪#9 2012/04/14.
RaQ3/4パッチ強化セミナー CobaltResQ 小田 誠.
状況に応じて適切な 例外処理が行なえる アスペクト指向分散環境実験の 支援ツール
より具体的に 相手に伝えよう.
高橋芳幸1, 地球流体電脳倶楽部 dcmodel プロジェクト 1.神戸大学大学院理学研究科
PHP と SQL (MySQL) の連携 日本語のデータを扱う
形態素解析と構文解析 金子邦彦.
Bash on Ubuntu on Windowsに オープンCAEのソフトを インストールする(2)
SQL J2EE I (データベース論) 第3回 /
7-Zipのインストール (Windows 10)
SQL データベース論 第11回.
就職活動.
Presentation transcript:

てやんでい!職人気質 株式会社ブースターテクノロジー 2006年9月1日 土屋達哉

PHPの遷移 ☆PHP4 ~ Zend Engineと呼ばれるスクリプトエンジンを搭載。 ☆PHP5 ~ Zend Engine2.0。OOP対応。 SimpleXML、SoapClient。XML、Soapの扱いが便利に。 try-catch で例外のハンドルが可能。 かなりJavaっぽくなり、『違う言語』になってしまった感がある。 ☆2006年8月時点の最新バージョンは「4.4.4」と「5.1.5」。 4系も引き続きアップグレードされている。 ※一般的にはまだ4系が多い。

MySQLの遷移 ☆3.23.34 ~ InnoDBをサポート(トランザクション、行ロック、外部キーが可能) ☆4.0 ~ Full-text 検索 ☆4.1 ~ 副問い合わせ、UTF-8対応。 varcharがサイズ指定がバイトだったのが文字数になった。 ☆5.0 ~ ストアドプロシージャ、ビュー、トリガー、カーソル機能 ☆5.1.4 ~ パーティショニング ☆2006年8月時点の最新バージョンは「5.0.24」。5.1系はまだベータ版 ※一般的には4.0系と5.0系が使われている。

MySQLで全文検索 ☆ 4.0から加わった「FullTextインデックス」を使った検索をしたい。 → like検索より数段高速だが、日本語が扱えない → 有限会社未来検索ブラジルのSenna(組み込み型全文検索エンジン)を入れる Sennaを使うには、MySQLのリコンパイルが必要。 手順は以下の通り。 (1)Mecab(形態素解析エンジン)のインストール (2)Sennaのインストール (3)MySQLのインストール

Mecab インストール ☆ 英語の文章は単語間がスペースで区切られているが、 日本語文章だとプログラムで区切りを判別できない。 例) ■I have a dream. → スペース区切りなので区切りは明白 ■私には夢があります。 → どこが区切りかプログラムにはわからない・・ これを分割してくれるのがMecab。

Mecab デモ # mecab 私には夢があります。↓ 私 名詞,代名詞,一般,*,*,*,私,ワタシ,ワタシ に 助詞,格助詞,一般,*,*,*,に,ニ,ニ は 助詞,係助詞,*,*,*,*,は,ハ,ワ 夢 名詞,一般,*,*,*,*,夢,ユメ,ユメ が 助詞,格助詞,一般,*,*,*,が,ガ,ガ あり 動詞,自立,*,*,五段・ラ行,連用形,ある,アリ,アリ ます 助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス 。 記号,句点,*,*,*,*,。,。,。 EOS

Sennaインストール ☆ Sennaは、MySQLに組み込むことで全文検索機能を強化してくれる 全文検索エンジン。 > wget http://dev.razil.jp/archive/senna/senna-latest-svn.tar.gz > tar xvfz senna-latest-svn.tar.gz > cd senna > ./configure --prefix=/usr > make > make install

MySQLインストール ☆ MySQLのソースをダウンロード > tar zxf mysql-5.0.24.tar.gz > cd mysql-5.0.24 > patch -p1 < ../senna/bindings/mysql/mysql-5.0.24.senna.diff > patch -p1 < ../senna/bindings/mysql/mysql-5.0.24.senna.2ind.diff > autoconf > CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro -felide-constructors -fno-exceptions -fno-rtti -I/usr/include -L/usr/lib" ./configure --with-senna --prefix=/usr --with-charset=utf8 --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --disable-shared --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --with-big-tables --without-readline > make > make install ※必ずsenna のパッチをあてる ※configure のオプションが重要

性能比較 [100万件テスト] ☆select count(*) as count from update_ping where blog_title like '%ジダン%' or entry_title like '%ジダン%' or body like '%ジダン%'; → 2.3秒 ☆SELECT count(*) FROM update_ping WHERE MATCH (blog_title, entry_title, body) AGAINST ('ジダン'); → 0.06秒!

性能比較(2) [1,000万件テスト] ☆select count(*) as count from update_ping where blog_title like '%ジダン%' or entry_title like '%ジダン%' or body like '%ジダン%'; → 43秒 ☆SELECT count(*) FROM update_ping WHERE MATCH (blog_title, entry_title, body) AGAINST ('ジダン'); → 0.6~0.7秒! テストマシン ■OS・・Fedora Core5 ■メモリ・・512MB ■CPU ・・2.53GHz/533MHz

所感 ☆ PHPは4系でいい気がする。 無理に5系にしてオブジェクト指向にする必要はないのではないか? でもtry catch は使いたい。。 ☆ MySQLは5系を使いたい。 データ件数が1000万件超で、検索機能をつけるのであれば like検索では実用に耐えない。 全文検索にすべきだが、MySQLのコンパイルが必要なので VPSや占有サーバ環境が必要。