Удаление узких символов Unicode «без пробелов» (U + 00A0) в python nlp - PullRequest
0 голосов
/ 19 апреля 2020

Неразрывные пробелы печатаются как пробелы, но обрабатываются внутри как \xa0. Как мне удалить все эти символы одновременно?

Пока что я заменил его напрямую:

text = text.replace('\u202f','')  
text = text.replace('\u200d','') 
text = text.replace('\xa0','')

Но каждый раз, когда я скребу текстовые предложения из внешнего источника, эти символы разные , Как мне удалить все сразу?

1 Ответ

0 голосов
/ 19 апреля 2020

Вместо этого вы можете использовать подстановку регулярного выражения.
Если вы хотите заменить все пробелы, вы можете просто использовать:

import re

text = re.sub(r'\s', '', text)

Сюда входят все пробелы Юникода, как описано в ответе на этот вопрос .
Из этого ответа вы можете видеть, что (на момент написания) юникодные константы, распознаваемые как пробельные символы (например, \s) в регулярных выражениях Python, следующие:

0x0009
0x000A
0x000B
0x000C
0x000D
0x001C
0x001D
0x001E
0x001F
0x0020
0x0085
0x00A0
0x1680
0x2000
0x2001
0x2002
0x2003
0x2004
0x2005
0x2006
0x2007
0x2008
0x2009
0x200A
0x2028
0x2029
0x202F
0x205F
0x3000

Выглядит так, как будто это соответствует вашим потребностям.

...