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 '