rdkit & nlp | Utiliser des expressions régulières pour segmenter les sourires

Segmentation des expressions chimiques des sourires

Les données du corpus chinois sont un lot de textes courts ou longs, tels qu'une collection de phrases, de résumés d'articles, de paragraphes ou de l'article entier. En général, les mots et les mots entre les phrases et les paragraphes sont continus et ont certaines significations. Lorsque vous effectuez une exploration et une analyse de texte, nous espérons que la plus petite granularité unitaire du traitement de texte est constituée de mots ou de mots.Par conséquent, à ce stade, une segmentation de mots est nécessaire pour segmenter tout le texte.

De même, lors du traitement de texte chimique, la plus petite taille de particule unitaire que nous voulons traiter est l'élément ou la liaison
 

def smi_tokenizer(smi):
    """
    Tokenize a SMILES molecule or reaction
    """
    import re
    pattern =  "(\[[^\]]+]|Br?|Cl?|N|O|S|P|F|I|b|c|n|o|s|p|\(|\)|\.|=|#|-|\+|\\\\|\/|:|~|@|\?|>|\*|\$|\%[0-9]{2}|[0-9])"
    regex = re.compile(pattern)
    tokens = [token for token in regex.findall(smi)]
    assert smi == ''.join(tokens)
    return ' '.join(tokens)
    
smi_tokenizer("CC(=O)OCC1=C(C(=O)O)N2C(=O)[C@@H](NC(=O)C(OC(C)=O)c3ccccc3)[C@H]2SC1>O>CC1=C(C(=O)O)N2C(=O)[C@@H](N)[C@H]2SC1")

«CC (= O) OCC 1 = C (C (= O) O) N 2 C (= O) [C @@ H] (NC (= O) C (OC (C) = O) c 3 ccccc 3 ) [C @ H] 2 ​​SC 1> O> CC 1 = C (C (= O) O) N 2 C (= O) [C @@ H] (N) [C @ H] 2 ​​SC 1 '

Je suppose que tu aimes

Origine blog.csdn.net/weixin_43236007/article/details/109671590
conseillé
Classement