PC 見積もり代金 530万円也

hp のサイトで、以下のスペックで PC の見積もりを見てみた。

  • CPU: Xeon 2620v4 2.1G 8コア×2
  • RAM: 512GB
  • HDD: 2TB ×2
  • GPU: P6000 ×2
  • その他もろもろ(Blue-ray, GbE追加など)

結果は標題にある通り、530万円余りということになった。
(CPU には正直あまり期待していないので、必要最小限のオプションになっています。)

ちなみにさくらインターネットの高火力シリーズでP100×1を1年間の見積もりを計算すると363万円(ただしメモリ1TB)、マウスコンピュータのX299ベース、128GBのPCを4台見積もると440万円くらいになるので、電源事情を考えれば、2年以上使うのだったら hp から購入するのは悪くない選択肢に思える。
(Ubuntu のホームページを見ると Z840 筐体はサポートされているようだ)

納期が8週間かかりそうなのと、11月下旬に新しい筐体が出るようなので、今回は購入を見送ります。というか今使っている PC を取りあえずフルに使えと言うことなんですが。

N-gram 検索エンジンに and 機能を追加

N-gram 検索エンジンに and 検索機能を追加しました。

半角の空白文字を入力すると、空白で区切られた文字列を全て含むページを検索します。

実装がちょっとうまくないですが、おいおい直します。

表示についても統一化していないため、検索にヒットした文の数だけ結果が表示されます。例えば、「可逆 圧縮」と入力した場合、「可逆」で検索された後、「圧縮」で検索されるため、「可逆」で1行、「圧縮」で1行表示されます。

これは検索の問題というよりは表示の問題です。

N-gram 解説記事を展開しました

GitHub にはすでにサンプルを上げてありますが、N-gram 解説記事を新たに展開しました。

使い古されてあまり顧みられなくなった感のある N-gram ですが、実装が簡単な割には厳密な検索が可能なので、個人的には重宝しています。

解説記事はネットに多数掲載されていますが、他の検索エンジン技術と比較するときに対象記事があったほうが便利なので書いてみました。

振り返ってみると、あまり万人向けの解説になっていませんね..。

GitHub に検索エンジンソースを追加

GitHub.com に検索エンジンのソースコードを追加しました。

まだ N-gram ベースのプログラムしかありませんが、おいおい他のテクノロジーベースのエンジンも収録していきたいと思っています。

詳細はそのうちホームページに記述したいと思いますが、プログラムは以下のような構成になっています。

  • scayping.py: トップページを指定するとその下にある全てのページを取得し、検索用の3つのファイルを作ります。(ただし、ブログは収録しないようになっています。)
  • search.php: 検索エンジンのラッパーで、UI を与えるためのプログラムです。
  • search_engine.php: 検索エンジンの本体で、bi-gram による検索を実行します。

なお、前の記事にも書いたとおり、まだ And/Or 検索条件が書けません。

検索エンジン追加

N-gram ベースの検索エンジンが動くようになりました。結局、索引ファイルの作成は python3 で、検索エンジンは php で組んでみました。

索引ファイルはここでは作成できないので、別のマシンで随時作成したものをアップロードします(ちょっとださい)。

なお、検索対象はホームページ側の記事のみで、ブログ記事は検索されません。ブログを検索したい場合はブログの中で検索をかけてください。

And/Or 検索も実装されていませんが、そのうち実装したいと思います。

しかし、たったこれだけ実装するのに1日かかるとは、コーディングの実力が落ちたもんだ。。。

検索エンジン(2)

今更クローラを C で組みたくないな、と思い始めた。

XML と違って HTML は独特の書き方をするサイトもあるので、結構クローリングは大変なのである。N-gram を収容するファイルのフォーマットは大体決まったので、python か何かのクローリングライブラリを使おうかと思う。

N-gram ファイルの概要

明日は仕事が休みらしいので、ヒマがあれば片付けてしまおう。

検索エンジンどうしようか

しばらく前から Google のサイト内検索を使うサイトばかりになって、自力で検索エンジンを組み立てることがなくなった。

しかし、Google だと正確な and/or 検索をさせることができなくってしまったので、自前のエンジンが欲しいことがある。

どうせヒマになるし、また作ってみることにした。今度は転置行列は C で記述するが、検索は PHP で行うことを目標とする。(このサイトがユーザコマンドの実行を許していないようだという事情もある。)

ちょっとまだるっこしいが、ページが増える度に外からクローリングしてページを収集し、転置行列を生成して戻すというやり方でやってみることにする。

BOMのワナ

ホームページの、先頭の数ページを作成した。

フォーム問い合わせで SecurImage を使おうとしたら start_session() が warning を出して止まってしまった。原因は encoding で BOM つきの UTF-8 を使っていたことにあった。

BOM は大概のエディタでは目に見えないので、エンコードを確認するしかないのだが、どうもいつも失敗している気がする。

技術ページをいくつか作ったらまた Amazon に申請してみますか。

Amazon の審査に落ちた

単に書籍紹介時にリンクを張りたいというだけの理由で、Amazon のアフィリエイトに応募したが、あえなく落選してしまった。

理由はこのサイトに載っているコンテンツが少なすぎるので、もう少し拡充してから登録してください、というものだった。

とは言え、どこまで拡充すればよしとするのか審査基準が書いてない。

まあ、確かにトップページとこのブログしか置いていないようなシンプルすぎるサイトなので、目的が分からないというのは分からないでもないですが。

トップサイトを拡充したらもう1度挑戦してみることにしよう。

ベイズ統計を勉強中

ベイズ統計の基礎を学ぼうと思って、本を買ってきた。

[amazon_link asins=’4254122128′ template=’ProductCarousel’ store=’teqstock-22′ marketplace=’JP’ link_id=’46bacb08-9c9b-11e7-82a5-3987ea029436′]

ベイズ統計はベイズの定理

p(B|A) = \frac{p(A|B) p(B)}{p(A)}

に尽きるが、p(B)p(A) をどう設定するか任意性があるところが若干引っかかる点です。

後は独立な事象が来たらベイズ更新で p(B|A) を更新していくと p(B), p(A) の記憶が薄らいでいくというのが、肝かなと思いました。

後は Stan/R, NumPy を使って演習問題を解けばよいのだが、これがなかなか大変。