다음과 같이 텍스트를 불러올 때는 잘 불러와졌는데
> text <- readLines("text.txt", encoding="UTF-8") Warning message: In readLines("text.txt", encoding = "UTF-8") : incomplete final line found on 'text.txt' > text [1] "컴퓨터는 수치 연산을 위해 설계되었다. 컴퓨터 발명 초기에는 문자를 표현해야 하는 요구가 없었다. " [2] "그러나 곧 문자를 표현해야 하는 요구가 발생했다. 이기종 컴퓨터끼리 문자 데이터를 교환하기 위해서는 표준이 필요하다." >
말뭉치를 만들 때까지도 괜찮았는데
> text <- Corpus(VectorSource(text)) > inspect(text) <<SimpleCorpus>> Metadata: corpus specific: 1, document level (indexed): 0 Content: documents: 2 [1] 컴퓨터는 수치 연산을 위해 설계되었다. 컴퓨터 발명 초기에는 문자를 표현해야 하는 요구가 없었다. [2] 그러나 곧 문자를 표현해야 하는 요구가 발생했다. 이기종 컴퓨터끼리 문자 데이터를 교환하기 위해서는 표준이 필요하다. >
TermDocumentMatrix를 만들고 나서는 사정없이 한글이 깨지는 경우가 있다.
> tdm <- TermDocumentMatrix(text, control=list(tokenize=extractNoun)) > as.matrix(tdm) Docs Terms 1 2 臾몄옄瑜\xbc 1 1 諛쒕챸 1 0 \xec꽕怨꾨릺\xec뿀\xeb떎 1 0 \xec닔移\x98 1 0 \xec뾾\xec뿀\xeb떎 1 0 \xec뿰\xec궛\xec쓣 1 0 \xec슂援ш\xb0\u0080 1 1 \xec쐞\xed빐 1 0 珥덇린\xec뿉\xeb뒗 1 0 而댄벂\xed꽣 1 0
이는 TermDocumentMatrix 함수 내에서 한글 인코딩이 깨져서 그렇다.
다음과 같이 TermDocumentMatrix > 행렬 이름 > Terms 부분의 인코딩을 다시 지정해주면 정상적으로 한글이 출력된다.
Encoding(tdm$dimnames$Terms) = 'UTF-8'
> Encoding(tdm$dimnames$Terms) = 'UTF-8' > as.matrix(tdm) Docs Terms 1 2 문자를 1 1 발명 1 0 설계되었다 1 0 수치 1 0 없었다 1 0 연산을 1 0 요구가 1 1 위해 1 0 초기에는 1 0 컴퓨터 1 0
샘플 문장은 오영은 님의 '한글 인코딩의 이해' 중 일부분이다.
반응형
'R' 카테고리의 다른 글
[R.아르] 웹페이지에서 원하는 요소 가져오기(크롤링) (5) | 2018.03.13 |
---|---|
[R.아르] TermDocumentMatrix를 표로 전환하는 과정에서 에러가 날 때 (0) | 2017.11.01 |
[R.아르] TDM에서 tokenize 가 동작하지 않을 때 (형태소 분석) (0) | 2017.10.19 |
[R. 아르] KoNLP 패키지에서 에러가 날 때 (25) | 2017.10.16 |
[R. 아르] 언어 설정하기 / MDI, SDI 설정하기 (0) | 2017.10.12 |
[R.아르] 통계 프로그램 R 설치하기 (0) | 2017.10.11 |
[R.아르] 특정 단어가 들어있는 문장 추출하기 (0) | 2016.12.06 |
[R.아르] 문장에서 보통명사만 추출하기(2) (2) | 2016.12.06 |
[R.아르] 문장에서 보통명사만 추출하기(1) (4) | 2016.12.06 |
[R.아르] 문장에서 명사 추출하기 (5) | 2016.11.22 |
댓글