2017-01-12 5 views
1

Я работаю над проектом с OCR в Spanish. Камера фиксирует разные кадры в строке текста. Текст текста содержит следующее:Как удалить недопустимые символы между несколькими строками в python?

Este texto, es una prueba del dispositivo lector para no videntes.

После некоторых операций я получаю строки так:

s1 = "Este texto, es una p!" 
s2 = "fste texto, es una |prueba u.-" 
s3 = "jo, es una prueba del dispo‘" 
s4 = "prueba del dispositivo \ec" 
s5 = "del dispositivo lector par:" 
s6 = "positivo lector para no xndev" 
s7 = "lector para no videntes" 
s8 = "¡r para no videntes." 

Я хотел бы присоединиться к строке, так что я могу получить текст отсканированного линии в конечной строке так:

sf = "Este texto, es una prueba del dispositivo lector para no videntes." 

для начала я попытался использовать SequenceMatcher между двумя строками, но это не было эффективным:

# -*- coding: utf-8 -*- 
from difflib import SequenceMatcher as sq 
s1 = "Este texto, es una p!" 
s2 = "fste texto, es una prueba u.-" 
match = sq(None, s1, s2).find_longest_match(0, len(s1), 0, len(s2)) 
print unicode(s1 + s2[match.b + match.size:]) 

Результат содержит недопустимые символы, такие как | или !:

>>>Este texto, es una p!|prueba u.- 

Между s2 и s3:

>>>fste texto, es una |prueba u.-prueba del dispo‘ 

Etc. Я использую Python 2.7 на Windows 7.

ответ

0

Вы должны использовать regex Сделайте что-нибудь наподобие

import re 
line = re.sub(r'\W', r'', line) 

\ W означает любой символ слова. Вы можете больше узнать о регулярных выражениях на сайте: https://docs.python.org/2/library/re.html