Python: извлечение чисел из строки, такой как дата, дробь, процент и т. Д. - PullRequest
0 голосов
/ 14 сентября 2018

Я хотел бы идентифицировать все типы чисел в строке.Пример:

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, и мне интересно, есть ли лучший способ получить результат.Я мог бы просто перечислить все типы, затем использовать регулярные выражения, но это не лаконично, у кого-то есть хорошие идеи?

1 Ответ

0 голосов
/ 14 сентября 2018

Понимание списка здесь является довольно кратким:

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']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...