[Python] 규칙이 있는 영어 한글 패턴 분리해보기

2020. 4. 12. 18:37분석 Python/구현 및 자료

728x90

영단어를 복사해서 표로 만들고 싶었는데, 아래 그림과 같은 형태로 복사되었다.
그래서 바로 엑셀에 붙여 넣기를 하니 오른쪽 그림처럼 되었다. ㅠㅠ

그래서 내가 할 줄 아는 것은 파이썬하고 R뿐인데, 그중 요즘은 파이썬을 많이 사용하니 파이썬으로 분리해보기로 했다.

다행히 저기 글에는 패턴이 있었다. 바로 [영어~~] [한글, 영어 기타] 같은 형태로 되어 있었다.
그래서 저 [영어] [한글,영어] 을 하는 저 중간에 인덱스값만 안다면 분리할 수 있다는 것을 알았다.
그래서 코드는 다음과 같다.
일단 읽어들이고 중간에 \n 을 제거해보자.

import re
f = open("./영어_한글_혼합.txt","r")
lines = f.readlines()
공백제거 = [line for line in lines if line != "\n"]

그 다음 필자는 이런 패턴을 사용했다.

pattern = '([a-zA-Z0-9_.+-] [ㄱ-ㅣ가-힣]+)' 

의미는 앞에는 영어 숫자 뭐든간 있는 거고, 그리고 띄어쓰기가 있고 바로 한글이 있는 것 이다
그래서 이런식으로 search에 있는 start method로 index를 찾아서 분리해서 list에 저장했다.

result = []
for ck in 공백제거 :
    index = re.search(pattern=pattern, string=ck).start()
    영어 = ck[:(index+1)].strip()
    한글 = ck[(index+1):].strip()
    result.append([영어, 한글])

깔끔하게 분리 된 것 같다 ㅎㅎㅎ

## window는 encoding을 cp949
dd.to_csv("./영어_한글_분리.csv", index=False, header = False, encoding="CP949")

 

 

 

728x90