파이썬 find()가 사용자정의 함수 안에서 제대로 작동하질않아요!
def preprocess_paragraph(paragraph) :
index = 0
paragraph_temp = "".join(paragraph)
paragraph = []
while 1 :
seperator = dict_match("pre_process_dict.txt", paragraph_temp)
seperator = "".join(seperator)
index = paragraph_temp.find(seperator)
if index == -1:
return 0
else :
sliced_result = "".join(paragraph_temp[0:index +len(seperator)])
paragraph.append(sliced_result)
paragraph_temp = paragraph_temp[index + len(seperator) :-1]
if len(paragraph_temp) < 5:
return paragraph
continue
return 1
raw_text = "가상화폐 ‘대장주’ 비트코인 가격이 6500만원에 달하는 등 가상화폐 가격이 고공행진을 이어가는 가운데 내년부터 가상화폐를 통한 수익에 세금이 매겨진다는 사실도 알아둬야 한다. 가상자산 거래로 소득이 생겨 세금을 납부해야 하는 사람은 매년 5월 중 직전 1년 치 투자 소득을 반드시 신고해야 한다.22일 기획재정부에 따르면 정부는 내년부터 가상자산을 양도하거나 대여해 발생한 소득을 기타소득으로 분류해 20%의 세율로 분리과세한다..."
print(preprocess_paragraph(raw_text), end = "!!")
일단 코드는 이렇습니다.
문제가 되는건 반복문 안에서 paragraph_temp.find() 구문이 제대로 찾지를 못한다는거...자꾸 -1(에러)를 뱉어서 정의한 대로 돌아가질 않아요...뭐가 문제인지 알려주실 분 계신가요?
저기서 seperator는 "다." 입니다.
아래와 같이 seperator에 "다."를 넣으면 정상적으로 동작하는 것 같습니다.
실행 결과는 이렇습니다.
dict_match()가 어떤 역할을 하는 함수인지는 모르겠습니다만
해당 함수에서 원하시는 seperator가 반환되지 않는 것 같습니다.