【问题标题】:Tokenize a String without spaces using a custom tokenizer in Spacy使用 Spacy 中的自定义标记器对没有空格的字符串进行标记
【发布时间】:2020-12-20 06:23:06
【问题描述】:

我想标记一些名为SMILES 的化学表达式,例如[c]1ccc(C(=O)Nc2ccc(Br)cc2)cc1[N+](=O)[O-].C[NH]。字符串中没有空格,经过标记化后,我们应该得到[c], 1, c, c, c, (, C, (, =, O, ), N, c, 2, c, c, c, (, Br, ), c, c, 2, ), c, c, 1, [N+], (, =, O, ), [O-], ., C, [NH],这意味着一些特殊标记有多个字符,例如[c]Br[N+],它们不应该被拆分。除了这些标记之外,其他标记只有一个字符,例如c(N。我如何使用来自Spacy 的标记器来实现这一点?如果这里不需要 spacy 并且只有 python 的 sn-p 可以做到这一点,那也是可以接受的。任何帮助将不胜感激!

【问题讨论】:

    标签: python tokenize spacy


    【解决方案1】:

    我认为这个正则表达式很简单,所以

    s = "[c]1ccc(C(=O)Nc2ccc(Br)cc2)cc1[N+](=O)[O-].C[NH]"
    tokens = re.findall("\[.+?]|.",s)
    

    我猜你想要什么

    【讨论】:

    • 谢谢,re.findall("\[.+?]|Br|.",s) 工作。
    猜你喜欢
    • 2012-09-05
    • 2017-06-11
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多