タグ

ブックマーク / codezine.jp (34)

  • 検索技術と自然言語処理技術を駆使して話題のトピックをひとまとめ ~はてなブックマークのトピックページの作り方

    はじめに 稿では、はてなブックマークの10周年記念の第1弾として開発した「トピックページ」の作り方について解説します。トピックページとは、インターネット上で話題となったトピックを閲覧できるページです。 トピックページは、トピックに関連する記事の集合とトピックを表すタイトルから構成されます。 トピックページ生成の流れは以下の通りです。 トピック生成 トピック表すキーワード集合を獲得し、そのキーワードに関連する記事を収集する。 トピックタイトル生成 トピックに関連する記事の情報を利用してトピックを表すタイトルを生成する。 稿では、Elasticsearchなどの検索技術を活用したトピック生成方法、および、CaboChaなどの自然言語処理技術を活用したトピックタイトル生成方法について説明します。 対象読者 Elasticsearchを利用している/したい方 検索技術、自然言語処理技術に関心の

    検索技術と自然言語処理技術を駆使して話題のトピックをひとまとめ ~はてなブックマークのトピックページの作り方
    pcod
    pcod 2015/07/24
  • Fessで作るApache Solrベースの全文検索サーバー ~ 導入編

    はじめに ドキュメントは日々増えて続けています。ドキュメントの数が多くなるほど、目的の情報は見つけにくくなるため、それらのドキュメントを効率よく管理する方法が必要です。その解決策の一つとして、複数のドキュメント(ファイル)をまたいで検索することができる「全文検索サーバー」の導入が挙げられます。 Fessは簡単に導入できる、Javaベースのオープンソース全文検索サーバーです。Fessの検索エンジン部分にはApache Solrを利用しています。Solrは、2億ドキュメントもインデックス可能と言われる非常に高機能な検索エンジンです。一方で、Apache Solrで検索システムを構築しようとする場合、クローラ部分などを自分で実装する必要性があります。Fessではクローラ部分にSeasar Projectから提供されるS2Robotを利用して、ウェブやファイルシステム上の様々な種類のドキュメントを

    Fessで作るApache Solrベースの全文検索サーバー ~ 導入編
    pcod
    pcod 2009/11/14
  • 業務で楽するためのUNIXテクニック集 まずはおさらい、シェル制御構造と正規表現の基礎:CodeZine

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    業務で楽するためのUNIXテクニック集 まずはおさらい、シェル制御構造と正規表現の基礎:CodeZine
    pcod
    pcod 2008/10/23
  • iBATISを使ったO/RマッピングによるDBアクセスの実例:CodeZine

    はじめに iBATISはSQLを利用することに注力したフレームワークです。高機能なO/Rマッピングフレームワークに比べて簡単に理解でき、レガシーなJDBC、ResultSetを使ったプログラミングから簡単に乗り換えられます。 特にSQLを多用する人には使いやすいフレームワークです。SQLは使いたいがJDBCは低レベルすぎる高機能なO/Rマッピングフレームワークは難しすぎるソースコードからSQLを分離したいが動的なSQLの実装も必要  このようなケースで、iBATISは特に有効です。 記事では、たくさんのサンプルソースを解説することで、「iBATISを使えばこんな風に書ける」ということが分かるようにしています。環境設定や、設定ファイルについての細かい説明は簡略化してあります。対象読者Javaの基をマスターしている人SQL文を理解している人 必要な環境 iBATIS 2.3.0、J2SE

  • Hadoop、hBaseで構築する大規模分散データ処理システム:CodeZine

    はじめに この連載では、大規模分散計算フレームワーク「Hadoop」と、その上につくられた大規模分散データベース「hBase」の仕組みと簡単なサンプルアプリケーションを紹介します。HadoopとhBaseは、Googleの基盤ソフトウェアのオープンソースクローンです。機能やコンセプトについては、Googleが発表している学術論文に依っています。 これらの学術論文によると、Googleでは大規模分散ファイルシステム「Google File System」、大規模分散計算フレームワーク「MapReduce」、大規模分散データベース「BigTable」、分散ロックサービス「Chubby」という4つのインフラソフトウェアが使われています。 図1にGoogleの基盤技術間の依存関係、そしてそれに対応するOSSの対応関係を示しました。まずは対応するGoogleの基盤技術それぞれの機能や特徴をざっくりと

  • Hadoopのインストールとサンプルプログラムの実行:CodeZine

    前回はGoogleの基盤技術とそれに対応するオープンソースソフトウェアとして、Hadoop & hBaseを紹介しました(図1 参照)。今回はHadoopを1台にインストールし、サンプルプログラムを動かします。次にHDFSとMapReduceのアーキテクチャを解説します。最後にサンプルプログラムのソースコードを解説します。2. Hadoopの概要 Hadoopは主にYahoo! Inc.のDoug Cutting氏によって開発が進められているオープンソースソフトウェアで、GoogleFileSystemMapReduceというGoogleの基盤技術のオープンソース実装です。Hadoopという名前は開発者の子供が持っている黄色い象のぬいぐるみの名前に由来しています。HadoopはHDFS(Hadoop Distributed File System)、Hadoop MapReduce Fr

  • PHPにおけるグラフ描画とアルゴリズム:CodeZine

    はじめに稿で扱うグラフ 「グラフ」という語を広辞苑(第5版)で引くと、載っている意味は次の3つです。互いに連関する二つまたは二つ以上の量の間の関係を表す図形。例えば関数fに対し、xがfの定義域を動くときの点(x, f(x))の軌跡をfのグラフという。またx、yに関する方程式をみたす点(x, y)の軌跡をその方程式のグラフという。全体に対する割合を示したり、数量の大小を比較したりするための図表。円グラフ・棒グラフなど。写真を主にした雑誌。画報。  しかし、稿で扱うグラフは、この3つのいずれでもありません。国語辞典には載っていないことが多いようですが、計算機科学や数学において「グラフ」と言えば、図のような、点(pointあるいはvertex、node)と点を結ぶ線(lineあるいはarc、edge)の集合を指します。 グラフはプログラミングにおいてよく用いられる基的なデータ構造の一つです

    pcod
    pcod 2008/05/15
  • CodeZine:Rubyで簡易POP3サーバを作る(POP3, Unix, メール, サーバ, Ruby)

    はじめに 稿ではRubyを使ってシンプルなPOP3サーバを作成します。 POP3は、いわゆる「メールの受信」のときに使われるプロトコル(通信規約)です。稿では、このPOP3でサービスを提供するサーバの作成を通じて、以下のことを学びます。ネットワークプログラミングの基礎POP3の仕組みRubyによるネットワークプログラミングRubyによるUNIXシステムプログラミング POPdの概要 稿で作成するPOP3サーバ(POPd)は、イントラネットなどの信頼できるネットワークを前提として作成します。そのため、セキュリティへの配慮は最低限にとどめ、できるだけシンプルな構造を心掛けます。ただし「最低限の配慮」として、パスワードが平文で流れないようにするため、POP3の中でも特にAPOPという認証方法を用います。 また、速度やメモリ容量に関してもあまり配慮しません。せいぜい数人から数十人が日常的に使

  • BoostでC++0xのライブラリ「TR1」を先取りしよう (2):CodeZine

    はじめに C++の新しい規格「C++0x」では、言語とライブラリの両面から便利な機能が追加されます。「TR1」(Technical Report 1)はC++0xのライブラリ部で、標準C++に新たに追加されるライブラリの多くはBoostの中から選ばれたものです。2008年春にリリースが予定されているVisual Studio 2008にも追加パッケージとして供給されるとの情報を得ています。 TR1に収録されたクラス/関数の中からいくつかをピックアップし、その概要と使い方を予習しておきましょう。 正規表現について さまざまなアプリケーションの実装で必ずと言っていいほど必要となるのが文字列の処理です。簡単なところではファイル、ユーザー入力、あるいはネットワーク越しに手に入れた文字列を空白やカンマで区切るとか、特定の文字列の検索などがあります。 <string.h>(C++では<cstring>

    pcod
    pcod 2008/01/08
  • Google、さまざまなグラフ画像をURLだけで生成できる「Google Chart API」公開:CodeZine

    Googleは、折れ線グラフや円グラフといった画像をURLパラメータだけで生成できる「Google Chart API」を発表した。例えば以下ののようなURLで、次のようなグラフを作成できる。

  • Linux用 フリーの.NET統合開発環境「MonoDevelop 1.0 ベータ 2」リリース :CodeZine

    Monoプロジェクトは6日、Linux向け.NT統合開発環境「MonoDevelop 1.0 beta 2」をリリースした。ビルド番号は「0.17」となる。MonoDevelopのWebサイトより入手できる。 MonoはUNIXやLinux環境で.NET Frameworkを動作させるために活動しているプロジェクト。MonoDevelopはその一環として開発されている統合開発環境で、GNOMEを利用したVisual Studioライクなアプリケーションとなっている。 これまでコードアシストやUnitテスト、プロジェクトのバージョン管理といった基機能を整備してきたが、最新バージョンではASP.NETプロジェクトに対応、Visual Studio 2005のWebアプリケーションプロジェクトをサポートした。 正式版のリリースは未定だが、Monoプロジェクトのブログでは「年内には公開したい

    pcod
    pcod 2007/11/10
  • Pythonを始めよう:CodeZine

    はじめに こんにちわ、hirataraです。 稿では、オブジェクト指向のスクリプト言語であるPythonの紹介をしたいと思います。と言っても、実は私がPythonを勉強し始めたのは数ヶ月前のことで、まだPythonに関してさほど詳しいとは言えません。それでもこの記事を書こうと思い立ったのは、ある言語が他の言語に比べて面白い部分と言うのは、その言語にどっぷり漬かってその言語を使うことが当たり前になっている人間よりも、その言語を好きになり始めたくらいの人間の方が見つけやすいのではないかという思いからです。 そのような事情で、もしかすると当のPythonistaからお叱りを受けるような内容も含まれるかもしれませんが、その点はTBやコメントでご教授頂けると幸いです。この記事で、少しでもPythonに興味を持ってくれる方が増えることを願っています。対象読者他言語でのプログラミング経験者Pytho

  • ゲームAI連続セミナー「ゲームAIを読み解く」 第3回 レポート:CodeZine

    IGDA日は、株式会社フロム・ソフトウェアの協力、日デジタルゲーム学会(DiGRA JAPAN)の後援の下、5月12日(土)に東京大学郷キャンパス工学部新2号館(東京都文京区)にて、ゲームAI連続セミナー「ゲームAIを読み解く」の第3回「Chrome Hounds におけるチームAI」を開催しました。セミナーのコーディネータを務めました筆者がレポートをお届けします。 なお、連続セミナーの概要などについては、第1回のレポートや第2回のレポートを参照して下さい。 Chrome HoundsにおけるチームAI 第3回は「Chrome HoundsにおけるチームAI」と題して、集団として知性を発揮するAI技術を取り上げました。具体的なテーマは、「群知能」「マルチエージェント」「チームAI」です。第1回、第2回では、個として機能するAIを想定してきましたが、今回はそれらを集団として見た時、

  • COLLADA DOMを使った3Dモデルデータの読み込み:CodeZine

    はじめに この記事では、COLLADAドキュメントをCOLLADA DOMを使って読み込み、OpenGLで描画する方法について解説します。OpenGLでの描画はシンプルなテクスチャマッピングをして、メッシュを描画するだけのものですが、COLLADA DOMを導入してデータを取得することで、3Dモデリングソフトで作ったデータを簡単に利用することができるようになります。 COLLADAとは COLLADAとは、2004年のSIGGRAPH(シーグラフ、Special Interest Group on Computer Graphics)でSony Computer Entertainment Americaの技術者により開発が始まった、3Dアセットデータのためのファイルフォーマットです。 ゲームなどの3Dグラフィックスを使うアプリケーションでは、モデルデータやテクスチャ、シェーダ、アニメーシ

    pcod
    pcod 2007/01/23
  • 離散した点を補間してグラフを描画する方法:CodeZine

    はじめに 実験結果をグラフに表示する時、測定点をプロットしてから、その間を自在定規などで結んだ経験があると思います。ここでは、これを自動的に行うプログラムを紹介します。このような作業は「補間」(Interpolation)と呼ばれますが、「補間」には色々な方式がありますので、これらを比較できるようにしました。 完成版アプレットを見る 対象読者 Lagrange、Newton、Splineなどの補間方式に興味を持ち、実験結果をまとめるのに、自分で作ったプログラムを応用したい人。また、CGの基礎としての補間の原理を学びたい人。 必要な環境 J2SE 5.0を使っていますが、それより古いバージョンでも大丈夫です。 補間とは 「狭義の補間」は、二点のデータを正確なものと仮定し、その中間点のデータを推測することで、「内挿」とも言います。これは、デジカメなどの画像処理で用いられます。一方

    pcod
    pcod 2006/12/15
  • ゲームAIを「読み解く」セミナー開催:CodeZine

    IGDA日は、ゲーム開発者セミナーの特別編として『ゲームAI連続セミナー 「ゲームAIを読み解く」』を、12月16日(土)から開催する。全6回開催で第2回は2007年2月10日(土)、2007年8月の終了を予定。 次世代機では、増強されたリソースが物理処理や人工知能(以下、AI)に使われ始め、AI技術ゲーム開発において重要な位置を占めつつある。 このような状況を踏まえ、同セミナーではAI技術の導入を検討または取り組んでいるゲーム開発者/企画者を対象に、欧米で紹介されているAI技術適用の事例を紹介し、それについて参加者の間で議論を行う。 第1回は、NPC(ノンプレイヤーキャラクター)の制御において高度に知的な行動を実現している「Killzone」を取り上げる。このソフトで用いられている手法の解説と参加者間の議論を行い、同手法がこれからのゲーム開発を切り開く可能性について、企画/技術

    pcod
    pcod 2006/11/17
  • 今までにない操作感覚を実現したEラーニングサービス:CodeZine

    株式会社翔泳社は日、Eラーニング研修の導入・運用・受講管理機能、使い勝手を大幅に充実させた新しい「カタチ」のASP型Eラーニングサービス「i-Workshop」を、11月8日より提供開始することを発表した。 i-Workshopでは、デスクトップに見立てたインターフェースをFlashで構築することで、非常に親しみやすい操作性を実現している。主要な機能はすべてアイコン化され、コースの購入・受講・スケジュール管理・レポート・質問といったサポート機能を利用可能だ。 また、受講者の管理機能も充実しており、例えば企業で人材教育を実施する場合に、管理画面で受講状況や演習のランキング、正解率、最終アクセスなどを確認するだけでなく、受講者に伝達事項をメッセージで伝えるといったコミュニケーション機能も利用できる。 i-Workshopの詳細および問合せについては、同社のWebページを参照のこと。 S

    pcod
    pcod 2006/11/07
  • CodeDomによる実行時コード生成術:CodeZine

    はじめに CodeDomは、.NET Frameworkが提供する高度な実行時コード生成ライブラリです。CodeDomを利用することで、開発者は容易に実行時にコードを生成するアプリケーションを開発することができ、動的に実行コードを管理することができます。System.Reflection名前空間によるリフレクションもまた、実行時レベルでのコード制御を行う強力なライブラリですが、CodeDomはリフレクションとは異なり、.NETのプログラム構造を論理的に表現できるという特徴を持ちます。 既存の実行可能コードを実行時に解析する場合、リフレクションが大きな威力を発揮します。これに対し、CodeDomは、特定のプログラミング言語に依存しない形で、抽象的にプログラムの構造を表現するデータを構築したいときに大きな威力を発揮します。.NETアプリケーションはVisual Basic .NET、C#、C+

    pcod
    pcod 2006/10/26
  • .NETマルチスレッドプログラミング 1:スレッドの実行と同期:CodeZine

    目次はじめに対象読者必要な環境新しいスレッドを作成し、実行するフォアグラウンドスレッドとバックグラウンドスレッドスレッドが終了するまで待機するスレッドの同期競合状態Monitor.Enter・Monitor.Exitメソッドlock・SyncLockステートメント静的メソッドの同期ロック専用のオブジェクトMethodImplOptions.Synchronizedデッドロック まとめ参考資料 はじめに 稿では、.NET Frameworkにおけるマルチスレッドプログラミングについて、次のような方針で解説します。また、稿は四部作の「パート1」です。マルチスレッドプログラミングの基事項を、全般的に紹介します。ただし、説明は簡潔に要点のみを押さえ、深い部分までは掘り下げません。より詳しい内容を知りたい方は、記事内に示すリンク先や、末尾の「参考資料」を参照してください。この記事では、筆者が重

    pcod
    pcod 2006/09/28
  • ASP.NETにおけるHTTPデータの取得とキャッシュ:CodeZine

    前回は、実行時にユーザーの手で単一行表示から、複数行表示にレイアウトを変更する形で、エンドユーザーを巻き込んだ検索画面のモックアップを作成する手順を紹介しましたが、今回はそれに続き受注画面のモックアップを作成します。受注画面は、新規データの入力と既存データの表示が行えるものとし、今回もまた、実行時にユーザーの手でレイアウトを変更していただきます。 稿では、VB.NETを利用し、簡単な機械語で動く仮想CPUを作ることでバイナリプログラミングを満喫します。実際の業務で直接使えるケースは少ないと思いますが、デバッグやプログラミングの地力向上に役立つでしょう。 今回はSUB命令を実装する事によりCPUの理解を深めます。

    pcod
    pcod 2006/08/31