Process finished with exit code -1073740791 (0xC0000409) 오류

조회수 101회

온라인 자료를 보며 파이썬 학습중입니다. 기사내 명사 빈도 분석기를 제작중인데요. 현재 기사를 긁어온 파일명은 article_1.txt입니다. outtext.txt 파일을 만들어 이곳에 빈도 분석 결과를 넣으려하는데 Process finished with exit code -1073740791 (0xC0000409) 같은 오류가 뜹니다.

구글링을해보니 utf-8 인코딩 오류라는 이야기가있어, open함수에 ,encoding='utf-8' 를 추가하였지만 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbf in position 32: invalid start byte 라는 오류가 뜨네요..

여전히 해결되지않고있습니다. 참고한 블로그는 https://livedata.tistory.com/19 이며 작성한 코드는 아래첨부하는데, 도움주시면 정말 감사하겠습니다.

from konlpy.tag import Okt
from collections import Counter

#텍스트에서 명사를 분리 추출한후 빈도 계산하는 함수.
def get_tags(text, ntags = 50):
    spliter = Okt()
    nouns =spliter.nouns(text)
    count = Counter(nouns)
    return_list = []
    """ Counter'객체의 'most_common'메소드는 정수를 입력받아 객체 안의 명사 중, 
   빈도수가 큰 명사부터 순서대로 입력받은 정수갯수만큼 저장되어 있는 객체를 반환"""
    for n, c in count.most_common(ntags):
        temp = {'tag':n, 'count':c}
        return_list.append(temp)
    return  return_list

#메인함수
def main():
    open_file_name = "article_1.txt"
    output_file_name = "outtest.txt"
    noun_count = 50
    open_text_file = open(open_file_name, 'r')
    text = open_text_file.read()
    tags = get_tags(text, noun_count)
    open_text_file.close()
    output_file = open(output_file_name, 'w')
    for tag in tags:
        noun = tag['tag']
        count = tag['count']
        output_file.write('{} {}\n'.format(noun, count))
    output_file.close()

if __name__ == '__main__':
    main()

2 답변

  • Okt 은 jvm에서 동작합니다. 파이썬 라이브러리가 아니라는 겁니다.

    konlpy 에서 사용하기 위해 jpype 를 사용하여 python vm 과 jvm 통신을 합니다.

    중요한 부분이 python vm 과 jvm 이 같은 비트로 맞춰야 합니다

    즉 64비트 python 을 사용한다면 java 도 64비트를 사용해야 합니다.

    • 빠른 답변감사합니다. 음,, 원래 Twiiter 를 임포트했는데, 이경우 '"Twitter" has changed to "Okt" since KoNLPy v0.4.5.' 멘트가 뜹니다. Okt로 변경되었다는것같은데,, 제가 잘못쓴걸까요..? https://liveyourit.tistory.com/57 여기 포스팅은 가장 최근것으로 Okt를 사용했는데요. 그대로 가져다 써봤지만 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbd in position 2: invalid start byte 오류가 뜨고있습니다. SeungHwan Kim 2020.3.22 02:57
  • Process finished with exit code -1073740791 (0xC0000409)

    상기의 오류는 jvm 과 python vm 의 버전이 32비트면 32비트 (혹은 64비트면 64비트)로 동일해야 하는데 그렇지 못해서 발생하는 오류입니다.

    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbd in position 2: invalid start byte

    상기의 오류는 입력 문자열이 utf-8 이 아니라는 겁니다. 이 부분은 에디터등으로 확인해보면 확인이 됩니다.

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.