研究論文の PDF からの情報の抽出 [終了]
-
06-07-2019 - |
質問
PDF ドキュメントから書誌メタデータを抽出し、手動で入力したりカットアンドペーストしたりする手間を省くためのメカニズムが必要です。
少なくともタイトルと要旨。著者とその所属のリストがあれば良いでしょう。参考文献を抽出するとすごいことになるでしょう。
理想的には、これはオープンソース ソリューションです。
問題は、すべての PDF がテキストをエンコードしているわけではなく、多くの PDF はテキストの論理的順序を保持できないことです。そのため、pdf2text を実行するだけで、列 1 の 1 行目、列 2 の 1 行目、列 1 の 2 行目などが得られます。
図書館がたくさんあるのは知っています。要約やタイトルの著者などを特定します。解決する必要がある文書について。これが毎回可能になるわけではありませんが、80% であれば人的労力を大幅に節約できます。
解決 2
2010年2月にロンドンのDev8Dでこの問題を解決するためにコンテストを実施し、その結果、素敵な小さなGPLツールを作成しました。まだシステムに統合していませんが、世界中にあります。
他のヒント
投稿ごとに1つのリンクしか許可されていないため、次のようにします。 pdfinfo Linuxマニュアルページ
これにより、タイトルと著者が取得される場合があります。マニュアルページの下部を見ると、プログラムのオープンソースやさまざまなプラットフォームのバイナリを見つけることができるwww.foolabs.com/xpdfへのリンクがあります。
書誌参照を引き出すには、 cb2bib をご覧ください:
cb2Bibは、電子メールアラート、ジャーナルWebページ、およびPDFファイルから未フォーマットの、または標準化されていない書誌参照を迅速に抽出するための、無料のオープンソース、マルチプラットフォームアプリケーションです。
このトピックが議論されているwww.zotero.orgのディスカッションフォーラムもご覧ください。
やや単純化されているかもしれませんが、グーグルの「bibtex + paper title」通常、ACM、Citeseer、または他のそのような参照追跡サイトからフォーマットされたbibtexエントリを取得します。もちろん、これは論文が非計算ジャーナルからのものではないことを前提としています:D
-編集-
このためのカスタムソリューションが見つからないと感じています。citeseer、ACM、google scholarなどの引用トラッカーに書き込み、彼らが何をしたかについてのアイデアを得ることができます。他にもたくさんありますが、それらの実装はクローズドソースではなく、公開された形式ではありません。このテーマに関する膨大な研究資料があります。
私が所属している研究チームはそのような問題を検討しており、手書きの抽出アルゴリズムまたは機械学習がそれを行う方法であるという結論に達しました。手書きのアルゴリズムがおそらく最善の策です。
これは、可能な変動の量のために非常に難しい問題です。 PDFをテキストに正規化することをお勧めします(多数のプログラムPDFライブラリから取得できます)。次に、カスタムテキストスクラップアルゴリズムを実装する必要があります。
PDFの末尾から逆方向に開始し、どのような種類の引用キーが存在するかを調べます(例:[1]、[author-year]、(author-year)。その後、次の文の解析を試みます。ライブラリから取得したテキストを正規化するコードを書く必要があるでしょう(余分な空白などを削除します)。引用キーは行の最初の単語としてのみ検索し、ドキュメントごとに10ページのみを検索します-最初の単語にはキー区切り文字が必要です(例: '['または '(')。キーが見つからない場合10ページはPDFを無視し、人間の介入のためにフラグを立てます。
引用内のメタデータのフォーマットについてさらにプログラムで参照できるライブラリが必要な場合があります。たとえば、イタリックには特別な意味があります。
実用的なソリューションを得るためにかなりの時間を費やしてから、廃棄アルゴリズム/エンジンのチューニングと追加の継続的なプロセスになる可能性があると思います。
この場合、
何ができるかを簡単に把握する必要がある場合は、 TETクックブック
これはオープンソースのソリューションではありませんが、現在のところ私の意見では最良の選択肢です。プラットフォームに依存するものではなく、豊富な言語バインディングのセットと商用の支援があります。
誰かが同等またはより優れたオープンソースの代替を教えてくれたら嬉しいです。
テキストを抽出するには TET_xxx()
関数を使用し、メタデータを照会するには pcos_xxx()
関数を使用できます。
コマンドラインツールを使用して、必要なすべての情報を含むXMLファイルを生成することもできます。
tet --tetml word file.pdf
XSLT でTETMLを処理する方法の例があります TET Cookbook
TETMLには何が含まれていますか
TETML出力はUTF-8でエンコードされます(zSeriesでUSSまたは MVS:EBCDIC-UTF-8、www.unicode.org / reports / tr16を参照)、次の情報が含まれます。 一般的なドキュメント情報とメタデータ 各ページのテキストコンテンツ(単語または段落) グリフ情報(フォント名、サイズ、座標) 構造情報、例えばテーブル ページに配置された画像に関する情報 リソース情報、つまりフォント、色空間、画像 PDF処理中に例外が発生した場合のエラーメッセージ
iText をご覧ください。これは、PDFを読むことができるJavaライブラリです。適切なデータを見つけるという問題に直面しますが、ライブラリは、目的を推測するために使用できるフォーマットおよびレイアウト情報を提供します。
もう1つのJavaライブラリは、 PDFBox です。 PDFは、実際に表示および印刷できるように設計されているため、ライブラリを使用して手間のかかる作業を行う必要があります。それでも、抽出したいデータを取得するには、テキスト部分を少し接着する必要があります。幸運を祈ります!
この研究論文をご覧ください-以下を使用した研究論文からの正確な情報抽出条件付きランダムフィールド
Stanford NER のようなオープンソースパッケージを使用できます。 CRFを開始します。
または、おそらく、それら(研究論文)を Mendeley にインポートしてみてください。どうやら、それはあなたのために必要な情報を抽出するはずです。
これがお役に立てば幸いです。
これは、Linuxと cb2bib を使用して行うことです。
- cb2bibを開き、クリップボード接続がオンになっていること、および参照データベースがロードされていることを確認します
- Google奨学生に関する論文を探す
- 紙の下にある[bibtexにインポート]をクリックします
- 次のページ(bibtexコード)のすべてを選択(強調表示)します
- cb2bibでフォーマットされて表示されるはずです
- オプションで、ネットワーク検索(地球のアイコン)を押して、追加情報を追加します。
- cb2bibで保存を押して、論文をrefデータベースに追加します。
すべての論文についてこれを繰り返します。 PDFからメタデータを確実に抽出する方法がない場合、これが私が見つけた最も簡単な解決策だと思います。
お勧めします 学者 と組み合わせて pdfからテキストへ.
PDF はメタデータを提供しますが、正しいコンテンツが含まれることはほとんどありません。たとえば、タイトル フィールドの代わりに「None」、「Adobe-Photoshop」、またはその他のダム文字列が使用されることがよくあります。そのため、タイトルがドキュメント内の任意の場所にある可能性があるため、上記のツールのいずれも PDF から正しい情報を取得できない可能性があります。もう一つの例:会議議事録の多くの論文には会議のタイトルや編集者の名前も含まれている場合があり、これが自動抽出ツールを混乱させます。論文の本当の著者に興味がある場合、結果は完全に間違っています。
そこで、私は Google の学者を使った半自動アプローチを提案します。
- PDF をテキストにレンダリングして、以下を抽出します。著者とタイトル。
- 2 番目にこの情報の一部をコピーして貼り付け、Google 学者に問い合わせます。これを自動化するために、クールな Python スクリプト gscholar.py を使用します。
したがって、実生活ではこれが私がやっていることです:
me@box> pdftotext 10.1.1.90.711.pdf - | head
Computational Geometry 23 (2002) 183–194
www.elsevier.com/locate/comgeo
Voronoi diagrams on the sphere ✩
Hyeon-Suk Na a , Chung-Nim Lee a , Otfried Cheong b,∗
a Department of Mathematics, Pohang University of Science and Technology, South Korea
b Institute of Information and Computing Sciences, Utrecht University, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands
Received 28 June 2001; received in revised form 6 September 2001; accepted 12 February 2002
Communicated by J.-R. Sack
me@box> gscholar.py "Voronoi diagrams on the sphere Hyeon-Suk"
@article{na2002voronoi,
title={Voronoi diagrams on the sphere},
author={Na, Hyeon-Suk and Lee, Chung-Nim and Cheong, Otfried},
journal={Computational Geometry},
volume={23},
number={2},
pages={183--194},
year={2002},
publisher={Elsevier}
}
編集:キャプチャが表示される可能性があるので注意してください。もう一つの素晴らしいスクリプトは、 ビフェッチ.
pdftk が見つかりました...それは驚くべきことで、Win / Linのバイナリ配布に含まれています/ Macおよびソース。
実際には、他の問題を解決しました(プロファイルを見て、別のpdfの質問に答えました。リンクの制限が1つあるためリンクできません)。
pdfメタデータ抽出を行うことができます。たとえば、これはタイトルを含む行を返します:
pdftk test.pdf dump_data output test.txt | grep -A 1 "InfoKey: Title" | grep "InfoValue"
タイトル、著者、mod-date、さらにブックマークやページ番号(テストpdfにはブックマークがあります)をダンプできます...出力を適切にgrepするには、明らかに多少の作業が必要になりますが、
pdfにメタデータがない場合(つまり、「抽象的な」メタデータがない場合)、pdf2textなどの別のツールを使用してテキストをcatし、上記のようなgrepトリックを使用できます。 PDFがOCRされていない場合、より大きな問題が発生し、PDFのアドホッククエリが非常に遅くなります(OCRに最適)。
とにかく、各クエリでファイルのメタデータ/テキストをスキャンするのではなく、ドキュメントのインデックスを作成することをお勧めします。
PyPDF が役立つ場合があります。 PDFファイル(暗号化されていない)のコンテンツを読み書きするための広範なAPIを提供し、簡単な言語のPythonで記述されています。
citeyoulike をお試しください。これは、論文のライブラリをまとめ、タグを割り当て、検索し、コメントを添付できるWebサイトです。また、Webブラウザにボタンを追加して、要約を含む必要な情報を自動的に抽出しようとします。ただし、実際にはpdfからそれほど多くは得られません。ただし、IEEE explorer、citeseer、または多くのジャーナルサイトに関する論文の引用を指す場合、通常はすべてのbibtex情報を取得できます。
問題は、多くの場合、pdfにはすべての引用情報が含まれていないことです。通常はタイトルと著者がいますが、必ずしも会議の名前や出版年ではありません。最初にsiteseer、PubMed、または他の場所に関する論文の引用を見つけ、そこから情報を抽出することは理にかなっています。
一般に、citeyoulikeは論文の整理に非常に役立つことがわかりました。また、他の人との共同作業にも役立ちます。グループを作成したり、論文を共有したり、フォーラムを設定したりできます。
CERMINE-コンテンツExtRactorおよびMINEr
論文で説明: TKACZYK、ドミニカ他CERMINE:科学文献からの構造化されたメタデータの自動抽出。 文書分析および認識に関する国際ジャーナル(IJDAR)、2015年、18.4:317-335。
主にJavaで記述され、 github でオープンソースとして利用可能。