2017-01-12 13 views
1

나는 OCR이있는 프로젝트에서 스페인어에 있습니다. 카메라는 한 줄의 텍스트에서 다른 프레임을 캡처합니다. 텍스트 줄에는 다음 내용이 포함되어 있습니다.파이썬에서 여러 문자열 사이에 잘못된 문자를 삭제하는 방법은 무엇입니까?

에스테 텍스트, españo 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:]) 
s3 사이

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

:

결과는 | 또는 ! 같은 잘못된 문자가 있습니다

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

등 당신은 사용해야 나는 윈도우 7에

답변

0

을 파이썬 2.7을 사용하고 있습니다 정규식 다음과 같은 작업을 수행

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

\ W는 임의의 단어 없음 문자를 의미합니다. 사이트에서 regexes에 대한 자세한 내용을 볼 수 있습니다 : https://docs.python.org/2/library/re.html