雑記だと味気ないからタイトルを考えよう
開発部テストチーム所属小林です。
残暑もようやく遠退いてやっと涼しくなってきたかと思えば突然猛暑になるというよくわからない天候が続いています。
おかげさまで前3連休は風邪気味で寝っぱなしでした。
そんなざまなので今日の朝ありえるえりあに何書こうか・・・と考え、まぁ仕事終わる頃には何か考え付くだろとか思っていたらあっという間に夕方。
さぁ困った。2回目にしてすでに日記くらいしか書くことがないぞ・・・?
そういうわけにもいかない(?)ので、最近副業で作った探索プログラムについてちょっと書いてみる。
プログラムの目的:
与えられた文書の中から0個以上存在するメールアドレスを抽出する
求められるもの:
遅くてもいいから文書内のメールアドレスを正しく抽出すること
というごく簡単なもの。
紆余曲折あったものの、現在の仕様は
①文書の中からトップレベルドメインを探す
②見つけたら、文書の先頭からトップレベルドメインまでを切り取る
見つからなかったらこの文書の探索は終了
③トップレベルドメインから1文字ずつ後ろへ下がる
④@が見つかる前に禁止文字が出てきたら、②で切り取った部分を取り除いた文書に①を適用する
⑤@が見つかったらメールアドレスに該当するので禁止文字が出るまで遡る
⑥禁止文字が出たらメールアドレスとして保存し、②で切り取った部分を取り除いた文書に①を適用する
というかんじ。
とりあえずメールアドレスの抽出は行えるけど結構遅い。
対象の文書が1000件程度ならいいが、さすがに万単位の処理だと時間がかかる。
そこで、なぜ遅いのか、どうすれば速くなるのか、というのを(主に書く内容がないとき)探求して行こうと思う。
遅そうな原因:
・そもそも現在の仕様が悪い
>これを考えると少し悲しくなるのでひとまずおいておく
・文書の中からトップレベルドメインを探すのに時間がかかる?
・トップレベルドメインを見つけ出した後にメールアドレスと断定するまでが遅い?
速く出来そうな方法:
・ボイヤー・ムーア法
>トップレベルドメインを探し出す時間を短縮できそう
>トップレベルドメインから1文字ずつ下がる方法だとこれは適用できなさそう
とりあえずボイヤー・ムーア法を乗っけてみてどうなるか検証してみようそうしよう。
- Category(s)
- 小市民記
- The URL to Trackback this entry is:
- http://dev.ariel-networks.com/Members/kaito/96d18a18306854736c17306a3044304b308930bf30a430c830eb30928003304830883046/tbping
- 雑記1
- ¦
- Main
- ¦
- ORACLEインストールに苦戦中。