やあみんな、
多数のジャーナル論文の全文を含むJMPテーブルがあります。各レコードには、論文のタイトルが1つの列(IDとして)に、論文の全文が別の列に含まれています。各論文の「方法」セクションのテキストのみを含む新しい列を作成したいと思っています。 @brady_bradyの「Recode Review」チュートリアル(https://community.jmp.com/t5/JMP-On-Air/Recode-Review/ta-p/261025 )を見て、これが実現可能かもしれないと考え始めました。私のアイデアは、各レコードの全文フィールドで「methods」という単語を検索し、これを任意の一般的でない区切り文字(例:$%^)に置き換えることです。次に、各文書の全文フィールドで「results」という単語を検索し、これを別の任意の区切り文字(例:!@#)に置き換えます。そして、テキストを列に分割するか、正規表現を使用して、これらの2つの区切り文字で囲まれたテキストのみをサブセット化する方法です。これは理論的には可能と思われます。しかし、文書中に「方法」や「結果」という言葉が複数回出てくる場合(よくあるケースですが)、複雑になる(あるいは不可能になる)のではないかと思います。何かアドバイスや注意点はありますか?
こんにちは、
これは、「メソッド」という単語が最初に出現してから「結果」という単語が最初に出現するまでの間にテキストを直接抽出するために使用できる最も基本的な式です。
Munger(
:TEXT,
Contains( Uppercase( :TEXT ), "METHODS" ),
Contains( Uppercase( :TEXT ), "RESULTS" )
-Contains( Uppercase( :TEXT ), "METHODS" )
)
これらの2つの単語は科学論文で非常に一般的であるため、これは全文データのサブセットに対してのみ機能すると確信していますが、特殊文字を挿入して正規表現を使用せずにJMP数式を使用する方法を理解できます。 。
ベスト、
TS
これらのケースの多く(ほとんどすべて?)のように、「それは依存します」。 データが適切に構造化されている場合、これを説明するために使用できる他の機能がある可能性があります。 たとえば、論文がすべて同じジャーナルからのものである場合、それらの間の構造的な一貫性を利用できる可能性があります。 本当に創造的である必要がある場合もあれば、オムニバス解析ルールを使用して必要なテキストを分割する方法を思い付くことがほとんど不可能な場合もあります。 もちろん、ツールが増えると、創造性とパワーが高まります。
Recodeの「セグメントの抽出」機能と、すでに述べたように、いくつかの正規表現を必ず確認してください。
申し訳ありませんが、ここではこれ以上お役に立てません-
乾杯、
ブレイディ
また会ったね、
いくつかの実験の後、私は、によって提供される簡単な式を使用して、ジャーナル記事のテキスト解析の目標を達成する方法を見つけました。 @Thierry_S 。 私の場合の課題は、私の「記事」が膨大な数の異なるジャーナルからのものであり、それらすべてが異なるフォーマットと小見出しラベルを持っていることでした。 したがって、標準的なパターン指向のアプローチは機能しません。 最終的にPDFを手動で編集する必要がありましたが、それほど悪くはなく、100%効果的であるようです。
まず、各pdfを開き、テキストを編集して、さまざまな標準コンテンツブロックに独自の区切り文字を付けました。 私の場合、要約、紹介、方法、結果、議論、および文献の標準的なカテゴリーを引用したかったのです。 それで、各論文の中で、私は「方法」の概念に一致する最初の見出しを見つけました。 これは実際には「方法」という言葉である場合もあれば、「材料と方法」や「研究領域」のようなものである場合もあります。 いずれにせよ、目的の小見出しの最後に、一意の区切り文字(CCCCCなど)を追加しました。 それから、私の「結果」の概念に一致する最初の小見出しを見つけました。これはしばしば「結果」という言葉でしたが、ジャーナルごとに異なり、時には他の言葉が使用されました。 小見出しに関係なく、一意の区切り文字(DDDDDなど)を追加しました。 コーパス全体で必要な6つの標準コンテンツブロックのそれぞれについて同じことを行いました。
次に、編集したすべてのpdfファイルを.txtファイルに変換しました(JMP以外の別のソフトウェアを使用)。
次に、JMPのAWESOME「複数ファイルのインポート」ツールを使用して、記事ごとに1行で、各記事の全文が1つの列にあるデータテーブルを作成しました。
この時点で、私がしなければならなかったのは、見出しごとに1つずつ、6つの新しい列を作成し、Thierry_Sが提供する数式のバリエーションを使用して、目的のコンテンツチャンクを収集することだけでした。 たとえば、「メソッド」列を作成するには、次の式を使用しました
Munger(
:TEXT,
Contains( Uppercase( :TEXT ), "CCCCC" ),
Contains( Uppercase( :TEXT ), "DDDDD" )
-Contains( Uppercase( :TEXT ), "CCCCC" )
)
次に、「結果」列を作成するために、次の式を使用しました
Munger(
:TEXT,
Contains( Uppercase( :TEXT ), "DDDDD" ),
Contains( Uppercase( :TEXT ), "EEEEE" )
-Contains( Uppercase( :TEXT ), "DDDDD" )
)
最後に、800の記事のデータ表があり、各記事には、要約、紹介、方法、結果、ディスカッション、および引用された文献の標準列に情報があります。 ビンゴ、ハレルヤ!
このアプローチでは、区切り文字をPDFファイルに挿入する手動の手順が必要でしたが、そのプロセスには1日しかかかりませんでした。 記事のフォーマットには大きなばらつきがあり、記事間で一貫した「タグ」メタデータがないことを考えると、これは非常に確実な方法でした。 セクションの基準を満たす可能性のある単語のリスト(「メソッド」、「結果」など)を検索することで、これらのタグを自動的に挿入する方法があるかもしれませんが、このスレッドの他の場所で言及されているように、これらはほぼすべてのセクションで発生する可能性が高いジャーナル記事。 手動のアプローチにより、ジャーナルからのpdfファイルとして作成されたものであれ、過去30年間にOCRの対象となったスキャンが不十分なレポートであれ、すべてのpdfからテキストをキャプチャすることができました。
もう一度、ありがとう@Thierry_Sあなたの投稿のために。 JMPの柔軟性が再び発揮されます!
ケーシー