学術的なテキストをスキャンし、引用を抽出し、それらの引用を構成要素 (著者、タイトル、発行日など) に解析するパーサーが必要です。
Paracite を試してみましたが、非常に遅く、高品質の結果が得られません。
どの言語でも構いませんが、Java をお勧めします。
見てみましょうParsCit
:
これは、2 つのタスクを実行する ParsCit プロジェクトのホームページです。1) 参照文字列の解析 (引用の解析または引用の抽出とも呼ばれます)、および 2) 科学文書の論理構造の解析。これは、条件付きランダム フィールドを学習メカニズムとして使用する教師あり機械学習手順として設計されています。以下のコードをダウンロードしたり、オンラインで文字列を解析したり、バッチ ジョブを Web サービスに送信したりできます。このコードには、システムを Web サービス (この Web サイトで使用) に接続するためのトレーニング データ、機能ジェネレーター、およびシェル スクリプトの両方が含まれています。
最近、同様の問題に直面し、ParsCit に基づいて独自のパーサーを作成することになりましたが、条件付きランダム フィールド モデルには CRF++ の代わりに Wapiti を使用しました。Mike が上で述べたように、ML ベースのパーサーの問題は、適切なタグ付きトレーニング データを取得することです。このために、結果にタグを付ける (そしてトレーニング データとして保存する) ことができるビジュアル エディターを作成しました。このアプローチは、参考文献の解析に非常に適しています。
興味のある方は、ここanystyle.ioでパーサーとエディターの両方を利用できるようにしました。
プロジェクトのリストはこちら: https://forums.zotero.org/discussion/1211/
Cb2bib は正規表現を使用します http://www.molspaces.com/cb2bib/
Citeseer は、著者名とタイトルの大きなリストを使用します。彼らの出版物リストを見ることができます
ここにプロジェクトがありますが、python: https://code.google.com/p/pdfssa4met/
これらのスタックオーバーフローの質問も参照してください: *研究論文の PDF から情報を抽出する
Luceneのようなインデックス作成/検索ライブラリを調べてみることができます