見出し画像

近刊『Pythonではじめる 情報検索プログラミング』序文公開

2020年12月中旬発行予定、『Pythonではじめる 情報検索プログラミング』(佐藤進也 著)のご紹介です。

同書の序文を、発行に先駆けて公開します。

画像1

https://www.morikita.co.jp/books/book/3534

***
『Pythonではじめる 情報検索プログラミング』まえがき
著:佐藤進也

情報検索とは、計算機などを使って、大量の情報の中から欲しい情報を探し出すことです。画像や音声など、情報の表現方法はさまざまですが、本書では文字で書き記されたものに焦点を当てます。つまり、言葉で表された大量の情報(文書)の中から、欲しい情報が記されているものを探し出す、という問題を解くことが本書の主題です。

情報検索の歴史は、1950年のMooersの論文 にまでさかのぼることができます。以来、さまざまな概念や理論、手法(アルゴリズム)が開発されてきました。本書では、これらの概念や理論を詳しく解説するというよりは、「欲しい情報が記されている文書を見つけ出す」ことを目的として、文字、語、意味などに関する具体的な問題に対して、それを解決するプログラムを作成、実行して結果を確かめるという、体験を通した理解の手段を提供することを意図して書かれています。例題プログラムにはあえて問題やエラーが発生するケースを盛り込み、なぜそういった問題が起こるのか、どうすればその問題を解決できるのかを知ることで、より深く理解できるよう工夫しています。

実際に試して確かめるという点においては、私たちは、いま非常に恵まれた状況にあります。計算機の性能が向上し、ノートPC上でもかなりの処理ができるようになりました。ネットワークを使うことで、Webにあるデータにもアクセスできるようになりました。また、研究の進展と技術者の貢献により、さまざまなアルゴリズムを実装したモジュールを簡単に(多くのものが無料で)利用できるようになりました。この状況を是非活用していただきたいと思います。

プログラミング言語としてはPythonを選びました。モジュールが豊富なこと、やりたいことがコンパクトに書けること、ここで作成したプログラムのほかの目的への応用が容易なことなどがその理由です。ただ、Pythonの学習が目的ではないので、実装固有の内容があまり多くならないよう配慮したつもりです。

さて、近年、人工知能やビッグデータ、データサイエンスといった言葉が世の中を賑わせているようです。バズワードに振り回されるべきではありませんが、日常生活のさまざまな場面でデータが生み出されその量が増えていくこと、そして、データを利用する(しなければならない)機会が増えていくことは間違いないでしょう。そのデータをうまく活用するための技術の1つが情報検索です。情報検索の有力な手段としてはWeb 検索エンジンがありますが、これを利用することは、旅をするのに電車やバスを利用することに似ているかもしれません。効率的で確実な移動手段ですが、その分、行き先は限られていますし、冒険もできません。そこで、情報検索プログラミングで、自分の足でいろいろなところに出かけ、意外なものと出会う楽しさを味わっていただければと思います。

出典:『Pythonではじめる 情報検索プログラミング』

佐藤進也(さとう・しんや)
日本工業大学先進工学部情報メディア工学科教授。東北大学大学院理学研究科博士課程前期修了。博士(情報理工学)。日本電信電話株式会社を経て現職。

***

Pythonではじめる 情報検索プログラミング
著:佐藤進也

検索エンジンやテキストマイニングなど、さまざまなアプリケーションの根幹をなす情報検索技術をゼロから学ぶための入門書!

文字コードの扱いかた、検索語の選びかたなどの初歩的な話題から丁寧に解説。
それだけでなく、文書のクラスタリング、トピックモデル、表現学習といった話題もカバーされ、1歩ずつ発展的な検索システムを構築できるように工夫されています。

Pythonのプログラムを通して実践的な知識が身につく、初学者におすすめの1冊です。

【目次】
第1章 文字
 1・1 文字コード
 1・2 文字Nグラム
 1・3 正規表現
第2章 語
 2・1 形態素解析
 2・2 Bag-of-words
第3章 特徴語
 3・1 不要語
 3・2 TF・IDF
第4章 文書のランキング
 4・1 特徴語集合の類似性
 4・2 ベクトル空間モデル
第5章 検索システムの評価
 5・1 適合率と再現率
 5・2 適合率-再現率曲線
 5・3 テストコレクション
第6章 文書のクラスタリング
 6・1 k平均法
 6・2 凝集型階層的クラスタリング
第7章 文書のクラス分類
 7・1 機械学習の枠組み
 7・2 ナイーブベイズ
 7・3 分類器の評価
第8章 クエリの修正
 8・1 適合性フィードバック
 8・2 クエリ拡張
第9章 トピック
 9・1 潜在的意味インデキシング
 9・2 非負値行列因子分解
 9・3 潜在的ディリクレ配分法
第10章 表現学習
 10・1 埋め込み
 10・2 Word2vec
 10・3 Doc2vec
付録A  Python
 A・1 実行環境の構築
 A・2 Pythonの文法
 A・3 トラブルシューティング
 A・4 処理効率
 A・5 参考プログラム
付録B  Webデータの利用
 B・1 データ利用上の注意点
 B・2 具体例

いいなと思ったら応援しよう!