1
votes

Python regex pour omettre le style de référencement compliqué du texte

J'ai lu le contenu d'un fichier en python et je souhaite me débarrasser de toutes les références qui suivent le même format général:

def remove(test_str):
        regex=re.compile('\\nGoogle Scholar\)')
        starts=[]
        ends=[]
        ret=''
        for end in regex.finditer(test_str): #find all 'Google Scholar)'
            ends.append(m.end())
        for e in ends:                       #find all starting brackets
            i=e
            while True:
                if bool(re.match('\(\D+',test_str[i-2:i])):
                    starts.append(i-2)
                    break
                else:
                    i-=1
        start=test_str[:starts[0]]           #omit all characters in between
        starts=starts[1:]
        end=test_str[ends[-1]:]
        ends=ends[:-1]
        for i,j in zip(starts,ends):
            ret=ret+test_str[j:i]
        return start+ret+end

Introduction Les cellules endocrines des îlots pancréatiques de Les langerhans sécrètent de l'insuline et du glucagon en réponse au glucose perturbations pour maintenir l'homéostasie du glucose. La sécrétion d'insuline les cellules bêta présentent des caractéristiques morphologiques, fonctionnelles et moléculaires variations, ce qui suggère qu'il peut s'agir de sous-populations avec tâches spécialisées et réponses physiologiques (Gutierrez et al., 2017Gutierrez G.D. Gromada J. Sussel L. Hétérogénéité de la cellule bêta pancréatique. Genet. 2017; 8: 22Crossref \ nPubMed \ nScopus (11) \ nGoogle Scholar, Roscioni et al., 2016Roscioni S.S. Migliorini A. Gegg M. Lickert H.Impact de l'architecture des îlots sur -cell hétérogénéité, plasticité et fonction. Rev. Endocrinol. 2016; 12: 695-709Crossref \ nPubMed \ nScopus (36) \ nGoogle Scholar). Les caractéristiques de l'hétérogénéité des cellules bêta comprend la réactivité au glucose et la sécrétion activité ..... La visualisation des transcriptions dans le pancréas a cependant été impossible sans l'utilisation de techniques spécialisées telles que colorants photoswitchables (Cui et al., 2018 Cui Y. Hu D. Markillie L.M. Chrisler W.B. Gaffrey M.J. Ansong C. Sussel L. Orr G. Fluctuation hybridation in situ de fluorescence basée sur l'imagerie de localisation (fliFISH) pour une détection et un comptage précis des copies d'ARN en un seul cells.Nucleic Acids Res. 2018; 46: e7Crossref \ nPubMed \ nScopus (2) \ nGoogle Scholar). Nous avons optimisé le tissu standard smFISH protocole (Lyubimova et al., 2013 Lyubimova A. Itzkovitz S.Junker J.P. Ventilateur Z.P. Wu X. van Oudenaarden A. Détection d'ARNm à molécule unique et comptage dans les tissus de mammifères. Protoc. 2013; 8: 1743-1758Crossref \ nPubMed \ nScopus (62) \ nGoogle Scholar) par augmentant considérablement la période de dénaturation de l'ARNm, qui précède les étapes d'hybridation de la sonde, de 5min à au moins 3h.

Sortie souhaitée

Introduction Les cellules endocrines des îlots pancréatiques de Les langerhans sécrètent de l'insuline et du glucagon en réponse au glucose perturbations pour maintenir l'homéostasie du glucose. La sécrétion d'insuline les cellules bêta présentent des caractéristiques morphologiques, fonctionnelles et moléculaires variations, suggérant qu'elles peuvent être constituées de sous-populations avec tâches spécialisées et réponses physiologiques. Caractéristiques de la cellule bêta l'hétérogénéité comprend la réactivité au glucose et l'activité de sécrétion ..... La visualisation des transcriptions dans le pancréas, cependant, a été irréalisable sans l'utilisation de techniques spécialisées telles que colorants photoswitchables. Nous avons optimisé le tissu standard smFISH protocole en augmentant considérablement la période de dénaturation de l'ARNm, qui précède les étapes d'hybridation des sondes, de 5 min à au moins 3 heures.

Je ne trouve pas d'expression régulière qui omet toutes les références en une seule fois et j'ai donc dû le faire en 2 parties:

  1. Rechercher tous les emplacements de chaque occurrence "\ nGoogle Scholar)".
  2. De chaque emplacement, étendez vers l'arrière jusqu'à ce que le crochet ouvrant correspondant apparaisse, puis omettez les caractères entre ces index.

J'essaye ceci comme suit:

(Author et al., .............. \nGoogle Scholar) # there could be many '\nGoogle Scholar's within the brackets

Cependant cette stratégie échoue car l'expression régulière que j'utilise pour trouver chaque parenthèse de départ ( \ ( \ D + ) n'est pas assez exact - il y a souvent des crochets fermés dans les références, par exemple

(Cui et al., 2018 Cui Y. Hu D. Markillie L.M. Chrisler W.B. Gaffrey M.J. Ansong C. Sussel L. Orr G. Fluctuation localisation basée sur l'imagerie hybridation in situ de fluorescence (fliFISH) pour une détection précise et comptage des copies d'ARN dans des cellules individuelles.Nucleic Acids Res. 2018; 46: e7Crossref \ nPubMed \ nScopus (2) \ nGoogle Scholar)

Dans ce cas, la recherche du crochet ouvrant correct s'arrête prématurément ....

Quelqu'un peut-il recommander un bon moyen de supprimer systématiquement toutes les références?

p >


1 commentaires

J'ai vu que toutes les références se terminent par `` \\ nGoogle Scholar \) 'et commencent par (


3 Réponses :


1
votes

En vous basant sur le modèle que vous avez décrit, vous pouvez utiliser cette expression régulière,

import re

s = 'Introduction The endocrine cells in the pancreatic islets of Langerhans secrete insulin and glucagon in response to glucose perturbations to maintain glucose homeostasis. The insulin-secreting beta cells exhibit morphological, functional, and molecular variations, suggesting that they may consist of sub-populations with specialized tasks and physiological responses (Gutierrez etal., 2017Gutierrez G.D. Gromada J. Sussel L. Heterogeneity of the pancreatic beta cell.Front. Genet. 2017; 8: 22Crossref\nPubMed\nScopus (11)\nGoogle Scholar, Roscioni etal., 2016Roscioni S.S. Migliorini A. Gegg M. Lickert H. Impact of islet architecture on -cell heterogeneity, plasticity and function.Nat. Rev. Endocrinol. 2016; 12: 695-709Crossref\nPubMed\nScopus (36)\nGoogle Scholar). Features of beta cell heterogeneity include glucose responsiveness and secretory activity ..... Visualizing transcripts in the pancreas, however, has been infeasible without the use of specialized techniques such as photoswitchable dyes (Cui etal., 2018Cui Y. Hu D. Markillie L.M. Chrisler W.B. Gaffrey M.J. Ansong C. Sussel L. Orr G. Fluctuation localization imaging-based fluorescence insitu hybridization (fliFISH) for accurate detection and counting of RNA copies in single cells.Nucleic Acids Res. 2018; 46: e7Crossref\nPubMed\nScopus (2)\nGoogle Scholar). We have optimized the standard tissue smFISH protocol (Lyubimova etal., 2013Lyubimova A. Itzkovitz S. Junker J.P. Fan Z.P. Wu X. van Oudenaarden A. Single-molecule mRNA detection and counting in mammalian tissue.Nat. Protoc. 2013; 8: 1743-1758Crossref\nPubMed\nScopus (62)\nGoogle Scholar) by substantially increasing the period of mRNA denaturation, which precedes the probe hybridization steps, from 5min to at least 3hr.'

replacedStr = re.sub(r'(?s)\(.*?Google Scholar\) ?','',s)
print(replacedStr)

Et la remplacer par une chaîne vide. Ici (? S) permet d'activer . pour faire correspondre les nouvelles lignes.

Vérifiez ici

Voici une démo de code python,

(?s)\(.*?Google Scholar\) ?

Imprime les éléments suivants comme vous l'avez mentionné dans votre message.

Introduction Les cellules endocrines des îlots pancréatiques de Les langerhans sécrètent de l'insuline et du glucagon en réponse au glucose perturbations pour maintenir l'homéostasie du glucose. La sécrétion d'insuline les cellules bêta présentent des caractéristiques morphologiques, fonctionnelles et moléculaires variations, ce qui suggère qu'il peut s'agir de sous-populations avec tâches spécialisées et réponses physiologiques. Caractéristiques de la cellule bêta l'hétérogénéité comprend la réactivité au glucose et l'activité de sécrétion ..... La visualisation des transcriptions dans le pancréas, cependant, a été irréalisable sans l'utilisation de techniques spécialisées telles que colorants photoswitchables. Nous avons optimisé le tissu standard smFISH protocole en augmentant considérablement la période de dénaturation de l'ARNm, qui précède les étapes d'hybridation de la sonde, de 5min à au moins 3 heures.


9 commentaires

a plusieurs espaces dans le résultat qui ne sont pas présents dans la sortie souhaitée


@SimonF: Pouvez-vous me dire où il y a plusieurs espaces dans ma sortie par rapport à la sortie attendue d'OP? Il y avait JUSTE UN espace supplémentaire juste après le protocole smFISH car cette phrase ne se terminait pas normalement par un point comme les autres et c'est probablement une faute de frappe de la fin de OP. Et je peux même m'en occuper, mais cela rendrait juste l'expression régulière un peu illisible.


un espace supplémentaire à côté d'un autre espace équivaut à plusieurs espaces. Je viens de signaler une faille dans votre solution qui pourrait l'invalider en fonction de la précision de sortie souhaitée par xenopus. Je pense que vous faites des hypothèses sur la question que vous ne devriez pas. Et je pense qu'une regex qui résout un problème est meilleure qu'une belle qui ne le fait pas ...


@SimonF: J'ai également pris soin de cet espace supplémentaire et mis à jour mon message et maintenant la sortie est exactement identique à ce que OP attendait.


Bien joué! Avez-vous également réfléchi à ce qui se passe s'il y a des parenthèses dans le texte?


@SimonF: Merci. Pour que les parenthèses à l'intérieur des données soient supprimées, le comportement actuel est qu'il peut inclure des parenthèses dans ce bloc de texte, bien que la publication d'OP n'en ait pas. Maintenant, en fonction de ce que OP veut, cela peut être facilement fait en les restreignant avec une classe de caractères annulée. Mais à moins qu'OP ne montre plus de données et dise quel comportement il veut, affiner davantage regex peut ne pas être très utile.


S'il y a des parenthèses dans le bloc de texte «voulu», votre code supprimera tout de cette partie jusqu'à ce qu'il atteigne un bloc de référence. Ainsi, votre code suppose qu'il n'y aura pas de parantheses sauf celles des références. Je ne fais pas de telles hypothèses


@SimonF: OP a clairement mentionné qu'il voulait tout supprimer à partir de ( parenthèses jusqu'à ce qu'il voit Google Scholar) et ma solution fait exactement cela. Pourquoi implémenteriez-vous quelque chose d'autre que OP ne veut pas? Comment pouvez-vous supposer qu'il ne veut pas de parenthèse ou veut une parenthèse et opter pour une solution particulière? Donc, à moins qu'il ne dise quelque chose, votre solution doit être générique et non restrictive.


L'auteur demande un moyen de supprimer les références, rien d'autre



0
votes

Je le résoudrais de la manière suivante, qui correspond à ce que vous vouliez à la lettre et peut gérer les parenthèses dans le texte (qui ne sont pas les références):

  1. Rechercher le début \(

  2. Recherchez une répétition de [^ ()] + (?: \ ([^ ()] + \))? , qui est un ou plusieurs caractères qui ne sont pas des parenthèses suivi d'une paire facultative de () avec un ou plusieurs caractères qui ne sont pas des parenthèses à l'intérieur.

  3. Recherchez la fin de \ nGoogle Scholar \)

  4. Fractionner et joindre avec des espaces pour supprimer plusieurs espaces

Code:

fixed_text = re.sub(r' ?\((?:[^()]+(?:\([^()]+\))?)+\nGoogle Scholar\)', '', string)

Sortie:

Introduction Les cellules endocrines des îlots pancréatiques de Les langerhans sécrètent de l'insuline et du glucagon en réponse au glucose perturbations pour maintenir l'homéostasie du glucose. La sécrétion d'insuline les cellules bêta présentent des caractéristiques morphologiques, fonctionnelles et moléculaires variations, ce qui suggère qu'il peut s'agir de sous-populations avec tâches spécialisées et réponses physiologiques. Caractéristiques de la cellule bêta l'hétérogénéité comprend la réactivité au glucose et l'activité de sécrétion ..... La visualisation des transcriptions dans le pancréas, cependant, a été irréalisable sans l'utilisation de techniques spécialisées telles que colorants photoswitchables. Nous avons optimisé le tissu standard smFISH protocole en augmentant considérablement la période de dénaturation de l'ARNm, qui précède les étapes d'hybridation des sondes, de 5 min à au moins 3 heures.

Une amélioration peut être apportée en passant au code suivant qui supprime également les espaces avant le \ ( de début, mais alors il ne correspond pas à votre sortie souhaitée (qui a la faille ):

import re
text = 'Introduction The endocrine cells in the pancreatic islets of Langerhans secrete insulin and glucagon in response to glucose perturbations to maintain glucose homeostasis. The insulin-secreting beta cells exhibit morphological, functional, and molecular variations, suggesting that they may consist of sub-populations with specialized tasks and physiological responses (Gutierrez etal., 2017Gutierrez G.D. Gromada J. Sussel L. Heterogeneity of the pancreatic beta cell.Front. Genet. 2017; 8: 22Crossref\nPubMed\nScopus (11)\nGoogle Scholar, Roscioni etal., 2016Roscioni S.S. Migliorini A. Gegg M. Lickert H. Impact of islet architecture on -cell heterogeneity, plasticity and function.Nat. Rev. Endocrinol. 2016; 12: 695-709Crossref\nPubMed\nScopus (36)\nGoogle Scholar). Features of beta cell heterogeneity include glucose responsiveness and secretory activity ..... Visualizing transcripts in the pancreas, however, has been infeasible without the use of specialized techniques such as photoswitchable dyes (Cui etal., 2018Cui Y. Hu D. Markillie L.M. Chrisler W.B. Gaffrey M.J. Ansong C. Sussel L. Orr G. Fluctuation localization imaging-based fluorescence insitu hybridization (fliFISH) for accurate detection and counting of RNA copies in single cells.Nucleic Acids Res. 2018; 46: e7Crossref\nPubMed\nScopus (2)\nGoogle Scholar). We have optimized the standard tissue smFISH protocol (Lyubimova etal., 2013Lyubimova A. Itzkovitz S. Junker J.P. Fan Z.P. Wu X. van Oudenaarden A. Single-molecule mRNA detection and counting in mammalian tissue.Nat. Protoc. 2013; 8: 1743-1758Crossref\nPubMed\nScopus (62)\nGoogle Scholar) by substantially increasing the period of mRNA denaturation, which precedes the probe hybridization steps, from 5min to at least 3hr.'
fixed_text = ' '.join(re.sub(r'\((?:[^()]+(?:\([^()]+\))?)+\nGoogle Scholar\)', '', text).split())
print(fixed_text)

Introduction Les cellules endocrines des îlots pancréatiques de Les langerhans sécrètent de l'insuline et du glucagon en réponse au glucose perturbations pour maintenir l'homéostasie du glucose. La sécrétion d'insuline les cellules bêta présentent des caractéristiques morphologiques, fonctionnelles et moléculaires variations, ce qui suggère qu'il peut s'agir de sous-populations avec tâches spécialisées et réponses physiologiques. Caractéristiques de la cellule bêta l'hétérogénéité comprend la réactivité au glucose et l'activité de sécrétion ..... La visualisation des transcriptions dans le pancréas, cependant, a été irréalisable sans l'utilisation de techniques spécialisées telles que colorants photoswitchables. Nous avons optimisé le tissu standard smFISH protocole en augmentant considérablement la période de dénaturation de l'ARNm, qui précède les étapes d'hybridation des sondes, de 5 min à au moins 3 heures.


0 commentaires

0
votes
Introduction The endocrine cells in the pancreatic islets of Langerhans secrete insulin and glucagon in response to glucose perturbations to maintain glucose homeostasis. The insulin-secreting beta cells exhibit morphological, functional, and molecular variations, suggesting that they may consist of sub-populations with specialized tasks and physiological responses. Features of beta cell heterogeneity include glucose responsiveness and secretory activity ..... Visualizing transcripts in the pancreas, however, has been infeasible without the use of specialized techniques such as photoswitchable dyes. We have optimized the standard tissue smFISH protocol by substantially increasing the period of mRNA denaturation, which precedes the probe hybridization steps, from 5min to at least 3hr.

0 commentaires