Hallo allerseits,
Ich habe eine JMP-Tabelle, die den vollständigen Text einer Reihe von Zeitschriftenartikeln enthält. Jeder Datensatz enthält den Titel des Artikels in einer Spalte (als ID) und den Volltext des Artikels in einer anderen. Ich bin daran interessiert, eine neue Spalte zu erstellen, die nur den Text aus dem Abschnitt Methoden jedes Papiers enthält. Ich begann zu denken, dass dies möglich sein könnte, nachdem ich das gesehen hatte @brady_brady Tutorial "Überprüfung neu codieren" https://community.jmp.com/t5/JMP-On-Air/Recode-Review/ta-p/261025 . Meine Idee wäre, das Volltextfeld für jeden Datensatz nach dem Wort "Methoden" zu durchsuchen und dieses dann durch ein beliebiges und ungewöhnliches Trennzeichen (z. B. $% ^) zu ersetzen. Als nächstes würde ich das Volltextfeld für jedes Dokument nach dem Wort "Ergebnisse" durchsuchen und dieses durch ein anderes beliebiges Trennzeichen ersetzen (z. B.! @ #). Dann könnte ich entweder Text in Spalten oder RegEx verwenden, um nur den Text zwischen diesen beiden Trennzeichen zu unterteilen. Dies scheint theoretisch möglich zu sein. Ich vermute jedoch, dass es kompliziert (wenn nicht unpraktisch) wäre, wenn die Wörter Methoden oder Ergebnisse mehr als einmal im Dokument vorhanden sind (was häufig der Fall ist). Irgendwelche Vorschläge / Worte der Vorsicht?
Hallo,
Hier ist die grundlegendste Formel, mit der Sie den Text zwischen dem ersten Auftreten des Wortes "Methoden" und dem ersten Auftreten des Wortes "Ergebnisse" direkt extrahieren können.
Munger(
:TEXT,
Contains( Uppercase( :TEXT ), "METHODS" ),
Contains( Uppercase( :TEXT ), "RESULTS" )
-Contains( Uppercase( :TEXT ), "METHODS" )
)
Ich bin mir ziemlich sicher, dass dies nur für eine Teilmenge der Volltextdaten funktioniert, da diese beiden Wörter in wissenschaftlichen Arbeiten sehr häufig vorkommen. Sie erhalten jedoch eine Vorstellung davon, wie Sie JMP-Formeln verwenden können, ohne Sonderzeichen einfügen und Regex verwenden zu müssen .
Beste,
TS
Wie in vielen (fast allen?) Dieser Fälle "hängt es ab". Wenn die Daten gut strukturiert sind, können Sie möglicherweise andere Funktionen verwenden, um dies zu berücksichtigen. Wenn beispielsweise alle Artikel aus derselben Zeitschrift stammen, können Sie möglicherweise die strukturelle Konsistenz zwischen ihnen nutzen. Manchmal muss man wirklich kreativ sein, und manchmal ist es fast unmöglich, einen Weg zu finden, um den gewünschten Text mit einer Omnibus-Parsing-Regel aufzubrechen. Mehr Werkzeuge ermöglichen natürlich mehr Kreativität und Kraft.
Stellen Sie sicher, dass Sie die Funktion "Segment extrahieren" von Recode und, wie Sie bereits erwähnt haben, einige Regex-Funktionen anzeigen.
Entschuldigung, ich kann hier nicht weiterhelfen ...
Prost,
Brady
Hallo nochmal,
Nach einigen Experimenten fand ich einen Weg, mein Ziel für das Parsen von Text in Zeitschriftenartikeln mithilfe der einfachen Formel von zu erreichen @ Thierry_S . Die Herausforderung in meinem Fall bestand darin, dass meine "Artikel" aus einer Vielzahl verschiedener Zeitschriften stammen, die alle unterschiedliche Formate und Unterüberschriften haben. Folglich würde kein standardmäßiger musterorientierter Ansatz funktionieren. Was ich letztendlich getan habe, erforderte einige manuelle Bearbeitung von PDFs, aber es war nicht so schlimm und es scheint 100% effektiv zu sein.
Zuerst habe ich jedes PDF geöffnet und den Text so bearbeitet, dass die verschiedenen Standardinhaltsblöcke ihre eigenen Trennzeichen hatten. In meinem Fall wollte ich Standardkategorien von Zusammenfassung, Einführung, Methoden, Ergebnissen, Diskussion und Literatur zitieren. In jedem Artikel fand ich die erste Überschrift, die meinem Konzept der "Methoden" entsprach. In einigen Fällen war dies tatsächlich das Wort "Methoden", in anderen Fällen war es so etwas wie "Materialien und Methoden" oder "Untersuchungsgebiet". In beiden Fällen habe ich am Ende der gewünschten Unterüberschrift ein eindeutiges Trennzeichen (z. B. CCCCC) hinzugefügt. Dann fand ich die erste Unterüberschrift, die meinem Konzept der "Ergebnisse" entsprach, das oft das Wort "Ergebnisse" war, aber jedes Tagebuch ist anders, und manchmal wurden andere Wörter verwendet. Unabhängig von der Unterüberschrift habe ich ein eindeutiges Trennzeichen hinzugefügt (z. B. DDDDD). Ich habe das Gleiche für jeden der sechs Standard-Inhaltsblöcke getan, die ich für mein gesamtes Korpus haben wollte.
Als Nächstes habe ich alle meine bearbeiteten PDF-Dateien in TXT-Dateien konvertiert (mit einer anderen Software außerhalb von JMP).
Dann habe ich das AWESOME-Tool "Mehrere Dateien importieren" in JMP verwendet, um eine Datentabelle zu erstellen, die eine Zeile pro Artikel mit dem vollständigen Text jedes Artikels in einer einzelnen Spalte enthält.
Zu diesem Zeitpunkt musste ich lediglich 6 neue Spalten erstellen, eine für jede Überschrift, und eine Variation der von Thierry_S bereitgestellten Formel verwenden, um meine gewünschten Inhaltsblöcke zu sammeln. Um beispielsweise eine Spalte "Methoden" zu erstellen, habe ich die Formel verwendet
Munger(
:TEXT,
Contains( Uppercase( :TEXT ), "CCCCC" ),
Contains( Uppercase( :TEXT ), "DDDDD" )
-Contains( Uppercase( :TEXT ), "CCCCC" )
)
Um dann eine "Ergebnisspalte" zu erstellen, habe ich die Formel verwendet
Munger(
:TEXT,
Contains( Uppercase( :TEXT ), "DDDDD" ),
Contains( Uppercase( :TEXT ), "EEEEE" )
-Contains( Uppercase( :TEXT ), "DDDDD" )
)
Am Ende habe ich eine Datentabelle für 800 Artikel, in der jeder Artikel Informationen in den Standardspalten Zusammenfassung, Einführung, Methoden, Ergebnisse, Diskussion und Literatur enthält. BINGO, Halleluja!
Während dieser Ansatz den manuellen Schritt des Einfügens meiner Trennzeichen in PDF-Dateien erforderte, dauerte dieser Vorgang nur einen Tag. Angesichts der enormen Unterschiede in der Artikelformatierung und des Fehlens konsistenter "Tag" -Metadaten über Artikel hinweg war dies ein ziemlich narrensicherer Weg. Möglicherweise gibt es eine Möglichkeit, diese Tags automatisch einzufügen, indem Sie nach einer Liste von Wörtern suchen, die möglicherweise die Abschnittskriterien erfüllen (z. B. "Methoden", "Ergebnisse"), aber wie an anderer Stelle in diesem Thread erwähnt, sind dies sehr häufige Wörter in Zeitschriftenartikel, die wahrscheinlich in nahezu jedem Abschnitt vorkommen. Der manuelle Ansatz ermöglichte es mir, Text aus allen meinen PDFs zu erfassen, unabhängig davon, ob sie als PDF-Dateien aus Journalen oder als schlecht gescannte Berichte stammen, die in den letzten 30 Jahren einer OCR unterzogen wurden.
Nochmals vielen Dank @ Thierry_S für deinen Beitrag. Die Flexibilität von JMP schlägt wieder zu!
Casey