PythonのRequestsモジュールでCiNii Articlesのデータ取得

いままでPythonの標準モジュールのurllib2を使っていましたが、Requestsモジュールがとても便利だったのでメモ。

インストール

pipやeasy_installでインストールできます。自分はMacPortsからインストールしました。

sudo port install py27-requests @1.2.3 

CiNii Articlesのデータ取得

import requests

baseurl="http://ci.nii.ac.jp/opensearch/search?"
query={"count":"200","format":"rss","journal":"図書館雑誌","api_key":********} #図書館雑誌掲載の論文をRSSの形式で200件取得
r=requests.get(baseurl,params=query)

print r.text #レスポンスの内容を表示

get関数にparamsという引数で辞書を渡せば、URLエンコーディングも含めて自動的に処理してくるのがいいですね。
以前は以下のようなコードを書いていました。別に標準モジュールでももっと簡潔にかけるとは思いますが…。

import urllib2,urllib

api_key=********
baseurl="http://ci.nii.ac.jp/opensearch/search?count=200&format=rss&journal="
query=urllib.quote_plus("図書館雑誌")
search_url=cinii_url+urlquery+"&start="+str(start)+api_key
url=urllib2.urlopen(search_url)

他にもポストでアクセスするときにはpost()というメソッドを使うといった直感的な命名、jsonで受け取ったデータを辞書やリストといったPythonのオブジェクトに変換してくれるといった便利な機能があるみたいです。

CiNiiにJSON出力機能が出たらもうちょっと追記するかも。

Code4Lib JAPAN Conference 2013に参加してきました。

台風の影響で直前までたどり着けるか不安でしたが、無事Code4Lib JAPAN Conference 2013に参加してきました。

このところ、id:kitoneid:haseharuと一緒にあれこれやってきた成果についてLTもやりました。

Conferenceの様子は以下のURLなどをご参考に。

参加者総計で60名で、大学・公共・専門図書館やベンダーとさまざまな立場の方が参加されていました。どの講演からもいろいろ刺激をうけましたが、とくにDan Chudnov(@dchud)の講演の中にあった"rough consensus and running code"が印象に残りました。他の方のお話しも含めて、技術の話だけではなくコミュニティの活動をどのように維持して活性化していくかということの工夫が随所にあっていろいろと我が身を省みる機会になりました。

プレカンファレンスでNext-L Enjuのチュートリアルからカンファレンス終了後の南三陸町図書館の見学まで参加したので満喫することができました。ブレイクアウトで遊んでたレゴとボードゲームがとても面白くて日付が変わるまで遊んでました。

キング・オブ・トーキョー 日本語版

キング・オブ・トーキョー 日本語版


お久しぶりの方もずっとお会いしたいと思っていた方と何人もお目にかかることができ、はじめての東北訪問がとても楽しいものになりました。大会実行員会のみなさまおつかれさまでした&ありがとうございます!
来年は修論に追い込まれてそうなので怪しいですが、その次の年などは運営のお手伝いなどもしたいと思います。

はてなブログの評価指標 Hatena-Indexを実装しました

id:min2-flyのアイディアtitle=Hatena-Indexを実装してみました。*1どのくらい記事を書いているかと、どのくらいはてなブックマークされているかを表す指標になります。

Hatena-Index

f:id:otani0083:20130809214204p:plain

Hatena-Indexの詳細はHatena-Index - かたつむりは電子図書館の夢をみるかをご覧くとして、Hatena-Indexは研究者の評価指標h-indexのはてな版です。記事を論文、はてなブックマークを引用に見立てており、Hatena-Indexが5であれば5以上ブックマークされた記事が5以上存在することを表します。本来は全エントリを対象に計算するのですが、今回は自分の技術的な制約から対象を30エントリに限定しています。

その他、はてなスターTwitterFacebookGoogle+などの反応もグラフに表示します。

すこしでもブログ書くモチベーションやはてなブログへ切り替えの切っ掛けになれば幸いです。

利用にあたって

いろいろと能力不足で以下のような状態です、ひろいこころで利用ください。

  • とても重いです。結果の表示に1分程度はかかります。
  • 500エラーがしばしば発生します、キャッシュがたまることによって、実行速度があるので再度お試しください。
  • はてなブログ限定です。また、はてなダイアリー時代の各種SNSの情報は取得できません。
  • ブログトップページのURLを入力してください。エントリページからは利用できません。
  • グラフの表示は右側に行くほど昔のエントリになります。
やっていること
  1. 入力されたURLをもとに、そのブログの全エントリを取得。archiveのページからスクレイピングで全エントリを取得しています。スクレイピングPythonのBeautifulsoupを利用しています。
  2. はてなのAPIからブックマーク数とスター数を取得。
  3. SharedCount: Social URL AnalyticsAPIからTwitterFacebookGoogle+の情報を取得。
  4. 各エントリのブックマーク数からHatena-Indexを計算。
  5. htmlで整形。グラフはccchartというライブラリを、テーブルはTwitter BootstrapとjQuery plugin: Tablesorter 2.0を使用しました。

ソースコードは以下においています。
otani0083/hatenaindex · GitHub

Google app engineのタイムアウト設定が60秒なので、検索して60秒超過すると500エラーが生じます。もうちょっと自由度の高い環境であれば全エントリを対象にした結果を表示できそうです。さくらVPS解約したばかりですが…。
高速化・ほかのブログサービスへの対応・全件を対象とした処理・ランキング表示などは、もうちょっと自分の技術力があがったら対応したいと思います。

Google app engineの無料枠であと6つ作れるので、次はなにを作りましょうかね。

h-indexについて参考

カーリルウィジェット使ってみました。

*1:min2-flyに伺ったところ以前にid:myrmecoleonがはてな指標[はてブの改変にともない休止中]として実装していたそうです。

時空間情報をマッピングするOmeka+Neatline #しぶ旅

2013/08/09
さくらVPSのお試し期間終了にともない、構築したサイトも閉鎖しました。

 メールマガジン人文情報学月報 [まぐまぐ!]イベントレポートで使われていたり、id:haseharuが使いやすいと言っていて、気になっていたOmekaとNeatlineを使ってみました。

 今回の直接的な切っ掛けはOmekaに対するつぶやきに対してid:kitoneから"やろうぜ #しぶ旅"といったコメントを貰ったことで、先週末友人9人でいったしぶ旅(福岡→長崎旅行)の写真をマッピングしてみることにしました。アイディアや写真ありがとうございます。

公式情報

Omekaの公式サイト情報の和訳がありますので下記をご覧ください。
Omekaについてのご紹介 - 変更履歴 はてな版
Omekaはオンライン展示や歴史・地理の教材を作るのにも利用できそうなCMSで、Neatlineは地理情報や時系列情報を可視化するためのOmekaプラグインです。

Neatline.org | Neatline in Actionのデモは面白いので是非。

手順

1.ローカル環境にインストール

Omekaをインストールしてみる - 変更履歴 はてな版の情報を参考にまずはhttp://www.mamp.info/en/index.htmlというソフトを使って、Mac上でOmekaを利用してみました。この段階では先のインストール手順に従えば特に問題なく動作しました。

2.さくらVPSの設定

ローカルで動かして問題なさそうだったので、さくらVPSの1GBをとりあえず契約してみました(月額1000円)。クレジット払いにしておけば2週間お試しで利用できます。Omekaを利用するだけなら、PHPMySQLが使えればいいのでもっと安い選択肢*1がありますし、その方が設定することも少なくてお手軽です。ただ、今回はサーバー設定の勉強と余力があったら、Pythonも動かしたいということで自由度の高いさくらVPSを選択しました。
さくらVPSの設定あたりは以下の情報などを参考に行いました。

3.Omekaのインストール

1.と同様の方法で行ったのですが、ここで躓きました。
f:id:otani0083:20130804083205p:plain
というエラーがでます。
mod_rewriteのエラーでリダイレクトがうまくいっていないみたいですが、mod_rewriteというApacheのモジュールはインストール・有効化されている、公式のドキュメントにある.htaccessファイルはアップロードされていると、ここで小一時間悩みました。結論としてはApacheのAllowOverrideが有効になっていなかったので、これを"None"から"All"に切り替えて解決しました。
f:id:otani0083:20130804103350p:plain
項目を入力していくだけでインストール完了です。

その後、画像サムネイルを表示させるために、ImageMagicをインストール。デフォルトではjpegに対応していなかったので、http://www.ijg.org/からlibjpegをあらかじめインストールしておく必要がありました。

4.Neatlineのインストール

OmekaのプラグインフォルダにNeatlineと時系列情報を扱うNeatlineSimileというウィジェットをアップロードして完了。

あとは特に設定などしなくても項目を入力していくだけで冒頭に挙げたようなページが作れます。
サーバーの設定やインストールで躓いたのですが、半日程度で作成できました。

おわりに

OmekaのOAI-PMH Harvester - library labs
OAI-PMH関連のプラグインもあるみたいなので、もうちょっと遊んでみるつもりです。さくらVPSのお試し期間が10日ほどで切れるので、それ以降に継続するかは検討中です。折角だからようこそ - CKAN日本語とかも使ってみたいところ。

論文紹介:行動は言葉より雄弁である:リサーチエクスペリエンス改善のための大規模ログ分析

原題は"Actions Speak Louder than Words: Analyzing large-scale query logs to improve the research experience”です。

Summonでどのようなアクセスログの分析が行われているのか"The Relevance Metrics Framework"という分析ツールの紹介と
それによって行われたSummonの機能向上を中心に訪問されています。

Code4Lib Journal Vol.21掲載の論文で、執筆者3名はSummonの開発チームのメンバーです。
例によって貧弱な英語力で読んでますので、誤りなどあればご指摘いただければ幸いです。

Code4Lib Conference 2013でも同様の内容で発表されていて、スライドと映像が公開されています。
映像
Actions speak louder than words: Analyzing large-scale query logs to improve the research experience | code4lib
スライド
Actions speak louder than words: Analyzing large-scale query logs t...

構成は

Actions Speak Louder than Words: Analyzing large-scale query logs to improve the research experience
1. Introduction
2. Web-scale discovery systems
3. The Relevance Metrics Framework
 3.1. RMF Goals
 3.2. Useful Underpinnings
  3.2.1. Search Sessions
  3.2.2. Clicks as a Proxy For Relevance
 3.3. Dataflow in RMF
 3.4. Metrics Computed in RMF
4. Gains from RMF
 4.1. Data source for tools
 4.2. User behavior and Insights
  4.2.1 Patterns of search use
  4.2.2. Optimizing default results per page
  4.2.3 The nature of user searches
  4.2.4 Query length and Abandonment
5. Improving RMF
 5.1. Data Quality
 5.2. The Implications of Simplifying Assumptions
6. Conclusions

1章

検索システム研究の伝統的な方法論、システム志向とユーザー志向のアプローチについて説明した後に、ログデータを利用したアプローチのメリットを述べています。

  • 実験やユーザーテストで対象とすることができる数より、はるかに多くのユーザー対象とできる
  • ログデータは実際にユーザーが行った行動なので、限定的な環境で行った実験よりも信頼できる情報である
  • 調査結果をもとにシステムを変更し、その効果を計測することができる

といったことが挙げられています。*1

2章

背景としてWebスケールディスカバリサービスとしてSummonについて解説されています。SaaSのサービスであることや、セントラルインデックスを持つこと、シンプルな検索ボックスと複数のフィルター、ファセットを持つことなどがあげられています。また、この論文で述べられていることは、Summonに限らず他のサーチエンジンにも適用可能であるとも述べられています。

3章

ユーザーのリサーチエクスペリエンスを改善するための取り組みの一つとして構築したログ分析ツール"the Relevance Metrics Framework"(以下RMF)の目的・データ・測定基準が述べられています。

目的
  • ユーザー行動の分析
  • 検索品質の評価
  • Summonの機能改善
データ

セッション*2・クエリ・クリックされた検索結果などの情報を用いています。匿名化されたセッション情報からユーザーの振るまいを、クリックされた検索結果を適合文書の代替として検索品質の評価を行っています。

測定基準
  • どのような状況でユーザーが検索を放棄*3するのか
  • 一回のセッション内で最初に検索結果をクリックするまでに用いた検索回数
  • 検索結果の品質を評価するMRR*4やDCG*5

4章

RMFによってSummonがどのようにかわったのかツールのデータソースとユーザーの振るまいの面から述べられています。

ツールのデータソース

オートコンプリートや関連するクエリにRMFのデータを用いています。*6

ユーザーの振るまい

検索のパターン・デフォルト表示件数の最適化・検索方法の特徴・クエリの語数と放棄の関係について述べられています。

  • 検索のパターン

セッションの数は曜日によって周期的に異なる(平日に多く週末少なくなる)のに対し、セッション内での検索回数はほぼ一定です。原文Figure 4を参照ください。

  • デフォルト表示件数の最適化

表示件数を多くすればユーザーは効率的に検索結果を確認できますが、送信するデータ量が多くなるので表示速度は遅くなります。Summonではほとんど上位10件までしかクリックされていないので、デフォルトの表示件数を25件から10件へと変更されました。デフォルト表示件数は各機関で変更可能にもかかわらずほとんど変更されていないことや、RMFの数値からユーザーにうけいれられていると考えられます。

  • 検索方法の特徴

ほとんどシンプルなフリーワード検索が行われ、フィールド検索(クエリ単位で6%未満、セッション単位で4%未満)や演算子*7を用いた検索(2%強)はほとんど行われていません。一方でフィルタ機能はよく使用(クエリ単位で40%以上)されています。もっとも良く利用されているフィルタはコンテンツタイプです。

  • クエリの語数と放棄

クエリの語数と検索やセッションの放棄の関連性を調査しました。いずれもクエリの語数が少ないほど放棄する割合が高まります。原文Figure 5・6を参照ください。さらに多くのクエリは3語以下で構成されています。これに対する改善の一つが関連するクエリの推薦であり、今後リリース予定のTopicペイン機能*8です。

5章

RMFのデータ品質や仮定を簡素化していることの意味について述べられています。

  • データ品質

クローラーやプログラムによる機械的なアクセスなどは、RMFの分析をゆがめる可能性があります。一方で全てのデータを"Spam"といえるようなアクセスと実際のユーザーとのアクセスに分別するのは困難です。機械的なアクセスの特徴に当てはまるものは取り除く、判断が難しいものは"suspicious(容疑者)"タグをつけてデータは残し分析に加えることも除くことも出来るようにする、スパムを完全に取り除くのではなく分析の大勢に影響を与えないようにする、といったアプローチを組み合わせています。

  • 仮定を簡素化していることの意味

セッションは、同一ユーザーによる単一の情報要求に基づく検索と仮定して、複数のユーザーが同一端末で短い間隔で検索を行った場合や、同一ユーザーが複数の情報要求に基づいて連続して検索する場合を考慮していません。クリックについてもクリックされた結果を適合とみなしていますが、リンク先を見て適合していないと分かった、本当は適合しているがクリックされなかった、検索結果でユーザーの情報要求が満たされてクリックする必要がなかった*9といったパターンが考えられます。こういった仮定に基づいた分析結果であることは配慮しておく必要があります。

6章

改めてRMFの意義やその効果、Summonの継続的な開発を行っていくことが述べられています。

      • -

なぜデフォルトの表示件数を変更するのか、リリースが行われたときにちょっと疑問に思っていましたが、この論文でその根拠が理解できました。
全体の傾向だけでなく、各言語や機関ごとにRMFで行われている項目について比較分析ができると面白そうです。そのようなSerials Solutions社では手が回らないような機関単位のデータ分析や個別のセッションについての分析が各機関で実施できるようにデータが提供たり標準の統計ツール*10が充実することを願ってます。

*1:システム志向やユーザー志向のアプローチについては、 岸田和明. 情報検索における評価方法の変遷とその課題. 情報管理, 2011, vol. 54, no. 8, p. 439–448. 三輪真木子. 情報行動 : システム志向から利用者志向へ. 勉誠出版, 2012.などをご参考に

*2:一連のユーザーの振るまいを紐づける情報です。Summonでは90分以上の間隔が開いて無く、最大でも8時間となるように設定されています。

*3:一回も検索結果をクリックしない状況、セッションとクエリに対してそれぞれ放棄の状況を調査しています。

*4:Mean Reciprocal Rank:検索結果の評価指標です。検索結果の最上位にもっとも関連性の高い文書が表示されている状態が理想といえるので、1番上の検索結果がクリックされていれば1/1=1、5番目の結果がクリックされていれば1/5=0.2と、なにもクリックされなかったときは0とします。つまりMRRが1に近いほど良いシステムといえます

*5:Discounted Cumulative Gain:検索結果の評価指標です。複数の検索結果がクリックされることがありえますが、そのような場合の検索結果の品質を評価します。クリックされた検索結果で、上位に表示されているものに高得点、下位ほど低得点として特定を累積していきます。DCGの値が高いほどよいシステムとみなせます。

*6:メモ:Summonのオートコンプリート機能について

*7:AND、ORなどのブーリアン演算子ワイルドカード

*8:原文Figure 7やSerials SolutionsがSummon 2.0を導入 ディスカバリーサービスに新たな進化no Topic Exploreの項を参照ください。Googleのナレッジグラフをイメージすればいいように思います。

*9:例えばある特定の書籍の著者情報などはクリックする必要がないといった例が論文中であげられています

*10:時間や曜日を導入している機関のタイムゾーンで設定するとか、どういったコンテンツによくアクセスされているのかといった項目が追加されないか、など標準の統計ツールにお願いしたいことはいろいろありますが

GibbsLDA++でトピック分析

なぜか唐突にブログを同時更新使用みたいな話が決まってしまったので、無理矢理エントリを書いています。

自然言語処理のトピックモデルの一つの手法であるLDAを使ってみました。
LDAについては以下のスライドが詳しいので、参照ください。

LDA入門

一部引用すると

白鵬が単独首位 琴欧洲敗れる
・人は上の文を見て相撲に関係する文であることを理解できる

  • 文中に相撲という単語は出てこないにもかかわらず

・単語は独立に存在しているのではなく、潜在的なトピックを持つ単語は同じ文章に出現しやすい

といったモデルです。

ギブスサンプリング*1によるLDAをC++で実装したソフトが公開されています*2Pythonによる実装*3もいくつかありましたが、今回は研究室の人が利用しているこちらを。

GibbsLDA++: A C/C++ Implementation of Latent Dirichlet Allocation (LDA) using Gibbs Sampling for Parameter Estimation and Inference

インストール手順

  1. 以下のページからソースコードをダウンロード。
  2. ダウンロードしたファイルを解凍して、そのままmakeコマンドをたたくと失敗します。
  3. 念のためmake clean したあとにmake allでインストール完了。

使い方

satomacoto: LDAの実装を試してみるを参考にして貰うのがいいと思いますが。

LDAで解析するテキストデータを用意します。以下サンプルです。

n
{文書1}
{文書2}
{文書3}
{文書…}
{文書n}


文書i=単語1 単語2 単語3…単語m 

形式は、1行目に解析対象とする文書数。2行目以降に1行1文書としてスペース区切りで単語を並べます。
1行目で定義した文書数より全体の文書数が少ないとエラーがおきて解析できません。

その後、ターミナルからGibbsLDA++のSRCフォルダ内にあるLDAを実行します。

src/lda -est -alpha 0.5 -beta 0.1 -ntopics 5 -niters 1000 -savestep 500 -twords 20 -dfile pyscript/result.txt

いろいろとオプションを指定しています。
主なオプションは以下のようなものです。

  • -est…ゼロからLDAモデルを推定。(-estcオプションや-infオプションですでに構築したモデルを利用することもできます)
  • alpha・-beta…LDAの為のパラメータ。アルファのデフォルト値は50/K(Kはトピック数)。
  • -ntopics…分割するトピック数の指定。デフォルトは100。
  • -niters…ギブスサンプリングの試行回数。デフォルトは2000。
  • -savestep…指定した回数ごとに結果を保存。デフォルトは200。
  • -twords…各トピックの特徴語を出力する個数。
  • -dfile…データファイルの指定。実行結果も同じ場所に保存されます。

実行するとsavestepで指定したステップごとに5つのファイルが出力されます。

  • model-name.others…αやθなど各パラメータ
  • model-name.phi…トピックごとの単語の出現確率。
  • model-name.theta…文書ごとの各トピックである確率。
  • model-name.tassign…文書ごとに単語ID:トピック。
  • model-name.twords…各トピックごとの特徴語。

また、単語と単語IDの組であるwordmap.txtというファイルも出力されます。

CiNii Articlesでトピック分析

CiNii Articlesで"IR"を検索した結果をトピック分析した結果です。文献数10000でトピックを10個、トピックの中で特徴的な単語を5個抜き出した結果です。

Topic 0th:
	IR   0.007441
	),   0.007109
	acid   0.007052
	NMR   0.006914
	)-   0.006365
Topic 1th:
	larvae   0.000222
	superstructure   0.000188
	pyrophyllite   0.000188
	calculus   0.000188
	Studied   0.000154
Topic 2th:
	HEMA   0.000325
	Andosols   0.000257
	anodes   0.000222
	BTC   0.000222
	allophanic   0.000188
Topic 3th:
	VC   0.000730
	vitamin   0.000221
	SR   0.000221
	binders   0.000187
	kaolin   0.000187
Topic 4th:
	こと   0.012453
	IR   0.008112
	検索   0.007279
	測定   0.005234
	研究   0.005169
Topic 5th:
	tlae   0.002876
	ir   0.001369
	tl   0.000600
	Tlae   0.000477
	['   0.000477
Topic 6th:
	無し   0.001094
	タイトル   0.001094
	virus   0.000421
	silk   0.000320
	mosaic   0.000320
Topic 7th:
	наклонения   0.001031
	что   0.000904
	на   0.000809
	пересказывательного   0.000809
	времени   0.000809
Topic 8th:
	大豆   0.000836
	煮汁   0.000393
	bentonite   0.000324
	ACE   0.000256
	ニコチアナミン   0.000222
Topic 9th:
	品種   0.012668
	IR   0.009663
	こと   0.006451
	細胞   0.005535
	抵抗   0.005449
Topic 10th:
	Ir   0.020523
	領域   0.009596
	相関   0.009087
	_<   0.008022
	Co   0.007744
Topic 11th:
	IR   0.011768
	system   0.005076
	using   0.004087
	method   0.004012
	paper   0.003056
Topic 12th:
	治療   0.005279
	照射   0.004992
	Ir   0.004322
	線量   0.002951
	組織   0.001994
Topic 13th:
	_??_   0.001301
	]_   0.000807
	il   0.000774
	del   0.000609
	passato   0.000609
Topic 14th:
	IR   0.030421
	企業   0.010087
	特集   0.008930
	--   0.008591
	情報   0.007713
Topic 15th:
	IR   0.012067
	temperature   0.005610
	films   0.005380
	Si   0.004885
	FT   0.004631
Topic 16th:
	IR   0.015041
	cells   0.005403
	),   0.004770
	).   0.004047
	patients   0.003404
Topic 17th:
	SUB   0.075021
	</   0.069534
	SUP   0.025550
	>-   0.007334
	><   0.005725
Topic 18th:
	UWB   0.015344
	方式   0.011665
	IR   0.011287
	通信   0.007707
	こと   0.007389
Topic 19th:
   BPH   0.000755
	pesticide   0.000553
	Meeting   0.000453
	pesticides   0.000419
	Society   0.000419

IRでは情報検索なり、機関リポジトリなり、インベスター・リレーションズなり、さまざまな意味があるので、それが分類できないかなと思っていました。英語がグルーピングされてしまったので、そんなにわかりやすい結果になっていませんでしたが、Topic4や14などは検索や企業に関するトピックというのが提示されています。

*1:ギブスサンプリングについては、こちらのページなどを参照ください。PRML 11章 二変量正規分布からのギブスサンプリング

*2:Linux系のOSに対応

*3:Gensim:Topic modekking for humansPythonでLDAを実装してみる-satomacoto

ディスカバリーサービスSummonのログ分析

7月6日第30回医学情報サービス研究大会 MIS30と7月17日学術情報セミナー2013 in 福岡 「学術情報ビッグバン~情報の効率的発見と提供について~」 | 九州大学附属図書館で、「ディスカバリーサービスSummonのログ分析」というタイトルの報告をしました。
九州大学のSummonの利用ログからどのようにSummonが用いられているか、利用状況・検索クエリ・セッション・アクセスされたコンテンツから分析を行いました。

報告スライドは以下のとおりです。

多くのユーザーは日本語検索の際に、

  • 検索クエリをとくにスペースなどで区切ることなく検索している
  • 検索結果からクリックされるのは2つ以下

といったことを数字で示すことができたのは良かったと考えています。
(おそらく大部分は日本の)リポジトリコンテンツへのアクセスが全体の7%もあったのは意外でした。東工大リポジトリへのアクセスが単独で全体の1%を占めているのは、工学部の学生が多い九大の状況を表していると考えています。

一方で当初知りたかったことは、検索を行って望ましい結果が得られなかったときにどのような検索クエリの修正を行うのか(あるいは諦めるのか)ということでした。今回はデータの制約もあり十分に調べることが出来なかったので、引き続き調査するつもりです。

次の機会があればSerials Solutions社を噛まずに言えるようにしたいです…。

発表後、Code4Lib JournalでThe Code4Lib Journal – Actions Speak Louder than Words: Analyzing large-scale query logs to improve the research experienceというSerials Solutionsによるログ分析とその結果を用いたSummonの改善についての論文が掲載されました。また、The Code4Lib Journal – Relevance and Phrase Searching in Summon: looking under the hoodというSummonの検索結果のメカニズムについての論文も掲載されています。