【问题标题】:Python: Extract numbers from a string like date,fraction, percentage and so onPython:从日期、分数、百分比等字符串中提取数字
【发布时间】:2019-02-18 19:44:07
【问题描述】:

我想识别字符串中所有类型的数字。 示例:

a = 'I 0.34 -345 3/4 3% want to  get -0.34 2018-09 all numbers'

结果:

['I', '_num', '_num', '_num', '_num', 'want', 'to', 'get', '_num', '_num', 'all', 'numbers']

这是一个 nlp 项目,我想知道是否有更好的方法来获得结果。 我可以列出所有类型然后使用正则表达式,但这并不简洁,有人有好主意吗?

【问题讨论】:

    标签: python regex nlp


    【解决方案1】:

    这里的列表理解非常简洁:

    a = 'I 0.34 -345 3/4 3% want to  get -0.34 2018-09 all numbers'
    pattern = re.compile('\d')
    result = ['_num' if re.search(pattern, word) else word for word in re.compile(' +').split(a)]
    

    如果您输入中的双倍空格 (want to get) 是拼写错误,那么您可以单独分割一个空格,而不必使用正则表达式:

    pattern = re.compile('\d')
    result = ['_num' if re.search(pattern, word) else word for word in a.split(' ')]
    

    结果:

    ['I', '_num', '_num', '_num', '_num', 'want', 'to', 'get', '_num', '_num', 'all', 'numbers']
    

    【讨论】:

    • 感谢您的帮助,顺便说一句,如果我想同时标记标点符号,我该怎么办?再次感谢您,您的想法很棒^_^
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    相关资源
    最近更新 更多