Salut tout le monde,
J'ai une table JMP qui contient le texte intégral de plusieurs articles de revues. Chaque enregistrement contient le titre de l'article dans une colonne (comme identifiant) et le texte intégral dans une autre. Je souhaite créer une nouvelle colonne contenant uniquement le texte de la section « Méthodes » de chaque article. J'ai commencé à penser que cela serait possible après avoir visionné le tutoriel « Recode Review » de @brady_brady (https://community.jmp.com/t5/JMP-On-Air/Recode-Review/ta-p/261025 ). Mon idée serait de rechercher le mot « méthodes » dans le champ de texte intégral de chaque enregistrement, puis de le remplacer par un délimiteur arbitraire et inhabituel (par exemple, $%^). Ensuite, je rechercherais le mot « résultats » dans le champ de texte intégral de chaque document et le remplacerais par un autre délimiteur arbitraire (par exemple, !@#). Ensuite, je pourrais utiliser soit la conversion de texte en colonnes, soit une expression régulière pour sous-ensembleer uniquement le texte compris entre ces deux délimiteurs. Cela semble théoriquement possible. Cependant, je suppose que cela serait compliqué (voire impraticable) si les termes « Méthodes » ou « Résultats » étaient présents plusieurs fois dans le document (ce qui est souvent le cas). Auriez-vous des suggestions ou des mises en garde ?
Salut,
Voici la formule la plus basique que vous pouvez utiliser pour extraire directement le texte entre la première occurrence du mot «Méthodes» et la première occurrence du mot «Résultats».
Munger(
:TEXT,
Contains( Uppercase( :TEXT ), "METHODS" ),
Contains( Uppercase( :TEXT ), "RESULTS" )
-Contains( Uppercase( :TEXT ), "METHODS" )
)
Je suis à peu près sûr que cela ne fonctionnera que pour un sous-ensemble des données de texte intégral car ces deux mots sont extrêmement courants dans les articles scientifiques, mais cela vous donne une idée de la façon d'utiliser les formules JMP sans avoir à insérer des caractères spéciaux et à utiliser Regex .
Meilleur,
TS
Comme dans beaucoup (presque tous?) De ces cas, «cela dépend». Si les données sont bien structurées, il peut y avoir d'autres fonctionnalités que vous pouvez utiliser pour en tenir compte. Par exemple, si les articles proviennent tous de la même revue, vous pourrez peut-être profiter d'une cohérence structurelle entre eux. Parfois, vous devez vraiment être créatif, et parfois il est presque impossible de trouver un moyen de briser le texte que vous voulez avec une règle d'analyse omnibus. Plus d'outils permettent bien sûr plus de créativité et de puissance.
Assurez-vous de voir la fonctionnalité "Extraire le segment" de Recode, et comme vous l'avez mentionné, certains Regex.
Désolé, je ne peux pas être plus utile ici -
Acclamations,
Brady
Re-bonjour,
Après quelques expérimentations, j'ai trouvé un moyen d'atteindre l'objectif d'analyse du texte de mon article de journal en utilisant la formule simple fournie par @Thierry_S . Le défi dans mon cas, c'est que mes «articles» proviennent d'un grand nombre de revues différentes, qui ont toutes des formats et des étiquettes de sous-titres différents. Par conséquent, aucune approche standard axée sur les modèles ne fonctionnerait. Ce que j'ai fini par faire a nécessité une édition manuelle des fichiers PDF, mais ce n'était pas si mal et cela semble être efficace à 100%.
Tout d'abord, j'ai ouvert chaque pdf et édité le texte afin que les différents blocs de contenu standard aient leurs propres délimiteurs. Dans mon cas, je voulais des catégories standard de résumé, d'introduction, de méthodes, de résultats, de discussion et de littérature citées. Ainsi, dans chaque article, j'ai trouvé la première rubrique qui correspondait à mon concept de «méthodes». Dans certains cas, c'était en fait le mot «méthodes», mais dans d'autres cas, c'était quelque chose comme «matériaux et méthodes» ou «zone d'étude». Dans tous les cas, à la fin du sous-titre souhaité, j'ai ajouté un délimiteur unique (par exemple, CCCCC). Ensuite, j'ai trouvé le premier sous-titre qui correspondait à mon concept de «résultats», qui était souvent le mot «résultats», mais chaque journal est différent, et parfois, d'autres mots ont été utilisés. Indépendamment du sous-titre, j'ai ajouté un délimiteur unique (par exemple, DDDDD). J'ai fait la même chose pour chacun des six blocs de contenu standard que je voulais dans mon corpus complet.
Ensuite, j'ai converti tous mes fichiers pdf édités en fichiers .txt (en utilisant un logiciel différent, en dehors de JMP).
Ensuite, j'ai utilisé l'outil IMPRESSIONNANT "Importer plusieurs fichiers" dans JMP pour créer une table de données qui avait une ligne par article avec le texte intégral de chaque article dans une seule colonne.
À ce stade, tout ce que j'avais à faire était de créer 6 nouvelles colonnes, une pour chaque en-tête, et d'utiliser une variante de la formule fournie par Thierry_S pour collecter les morceaux de contenu souhaités. Par exemple, pour créer une colonne "méthodes", j'ai utilisé la formule
Munger(
:TEXT,
Contains( Uppercase( :TEXT ), "CCCCC" ),
Contains( Uppercase( :TEXT ), "DDDDD" )
-Contains( Uppercase( :TEXT ), "CCCCC" )
)
Ensuite, pour créer une colonne "résultats", j'ai utilisé la formule
Munger(
:TEXT,
Contains( Uppercase( :TEXT ), "DDDDD" ),
Contains( Uppercase( :TEXT ), "EEEEE" )
-Contains( Uppercase( :TEXT ), "DDDDD" )
)
En fin de compte, j'ai un tableau de données pour 800 articles où chaque article contient des informations dans les colonnes standard du résumé, de l'introduction, des méthodes, des résultats, de la discussion et de la littérature citée. BINGO, Alléluia!
Bien que cette approche ait nécessité l'étape manuelle d'insertion de mes délimiteurs dans des fichiers PDF, ce processus n'a pris qu'un jour. Compte tenu de l'énorme variation dans la mise en forme des articles et de l'absence de métadonnées cohérentes de «balises» d'un article à l'autre, il s'agissait d'une solution à toute épreuve. Il existe peut-être un moyen d'insérer ces balises automatiquement, en recherchant une liste de mots qui pourraient répondre aux critères de la section (par exemple, «méthodes», «résultats»), mais comme mentionné ailleurs dans ce fil, ce sont des mots très courants dans articles de revues susceptibles de figurer dans n'importe quelle section. L'approche manuelle m'a permis de capturer du texte de tous mes fichiers PDF, qu'ils proviennent de fichiers PDF de revues ou de rapports mal numérisés qui ont été soumis à l'OCR au cours des 30 dernières années.
Encore une fois merci @Thierry_S pour votre message. La flexibilité de JMP frappe à nouveau!
Casey