バッチで、論文タイトルのリストからEntrez PubMedのIDを取得するためにNCBIのESearchからxml情報を取得しようと 考えているのですが、以下のように、PubMedのWebサービスでは、ヒットするものが、ESearchでヒットしないものがあります。 問題の起こった論文のタイトル 「The long march: a sample preparation technique that enhances contig length and coverage by high-throughput short-read sequencing.」 Entrez PubMed
ESearchでdb=pubmedで検索時
ESearchの結果のxmlを見ると、なぜが、タイトル中の"The Long"だけ"Author"フィールドとみなされているようです。 特にタグ付けを行っていないこと、かつ、ESearchのみで発生していることで、原因が想像つかないのですが、 どなたかこのような現象に遭遇された方、対策にお心当たりのあるかたがおられましたらご助言いただけないでしょうか? 根本的な解決になるかは分かりませんが、stopwordを除去すれば、この件に関しては解決することが分かっておりますが、 類似の問題が発生しないとも限らないので、そのような場当たり的対応で良いのか分からず困っております。 質問日 Jun 20 '11 at 01:02 nob_fj ♦ |
本件ですが、PubMed検索でもESearchと同様の検索が行われています。ただ、それで一件もヒットしなかった場合の振舞いが異なり、PubMedでは続けて内部的に完全マッチ検索を行った上で対応するPubMed IDを取得し、それを改めてクエリとして発行しているようです。 事実、PubMedでは検索結果のページに以下のコメントが表示されています。
更に、Advanced searchタブをクリックして得られる検索履歴(Search History)に以下の表示があることからも確認出来ます。
#3のクエリは利用者が発行したものではなく、PubMedが内部的に行ったものです。 ただ、このPubMedと同じ動作をESearchでも行う方法については分かりません。 回答日 Jun 28 '11 at 19:01 yayamamo ♦♦ PubMedの内部的な動作、および、検索ヒストリの見方、コメントの見方についてまでご教授いただき、大変助かりました。 動作しようとして、ESearchと、PubMedのWebサービスは異なるということを伺えただけでも大きな前進をできたと思います。 PubMedが返すhtmlをパースしてPubMedIDを取得する方法で対応を行おうと思います。 また、上記の結果が、stopwordや特殊文字":"などを除去後に問い合わせた場合のESearchの結果と違わないかどうかも調べてみたいと思います。
(Jun 28 '11 at 20:32)
nob_fj ♦
|