ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 한글 띄어쓰기 패키지 KoSpacing!
    잡다R 2020. 3. 9. 14:33
    한글 띄어쓰기 패키지 KoSpacing!


     지난 텍스트마이닝 글에서 띄어쓰기와 관련된 문제가 있다고 말했는데, 찾아보니 KoSpacing이라는 한글 띄어쓰기 패키지가 있더라구요. 예전부터 실행이 안 되길래 포기하고 있었는데, 질문을 통해서 해결했습니다 ^-^ 기쁜 마음에 공유하고 싶어서 글을 씁니다.

     KoSpacing 패키지는 딥러닝을 이용해서 만드셨다고 하는데.. 세상엔 능력자분들이 엄청 많다고 느낍니다. 패키지를 개발하신 전희원님께 감사드리고, 패키지 사용 전에 필요한 프로그램 설치를 잘 정리해주신 박찬엽님께도 감사드립니다.


     KoSpacing 패키지 사용 방법은 다음과 같습니다. 먼저 reticulate 라이브러리의 install_miniconda() 함수를 실행합니다.

    library(reticulate)
    install_miniconda()


     다음으로 remotes 패키지를 이용하여 전희원님의 깃허브 계정에서 KoSpacing 패키지를 설치합니다.

    remotes::install_github("haven-jeon/KoSpacing")


     패키지를 잘 다운 받았다면 버전이 0.1.1 이상인지 확인합니다.

    library(KoSpacing)
    packageVersion("KoSpacing")
    ## [1] '0.1.1'


     최초 1회에 한하여 set_env() 함수를 실행합니다.

    set_env()


     실행하면 뭐가 굉장히 많이 길게 뜰겁니다. 끝나면 spacing()함수로 띄어쓰기를 진행해보아요. 띄어쓰기를 확인해볼 문장은 네이버 지식백과의 코로나 바이러스 검색 요약 부분입니다.

    spacing("코로나바이러스감염증19는2019년12월중국우한에서처음발생한뒤전세계로확산된새로운유형의코로나바이러스에의한호흡기감염질환이다.코로나바이러스감염증19는감염자의비말(침방울)이호흡기나눈·코·입의점막으로침투될때전염된다.감염되면약2~14일의잠복기를거친뒤발열및기침이나호흡곤란등호흡기증상,폐렴이주증상으로나타나지만무증상감염사례도드물게나오고있다.")
    ## [1] "코로나 바이러스 감염증 19는 2019년 12월 중국 우한에서 처음 발생한 뒤 전 세계로 확산된 새로운 유형의 코로나 바이러스에 의한 호흡기 감염 질환이다. 코로나 바이러스 감염증 19는 감염자의 비말(침방울)이 호흡기나 눈·코·입의 점막으로 침투될 때 전염된다. 감염되면 약 2~14일의 잠복기를 거친 뒤 발열 및 기침이나 호흡곤란 등 호흡기 증상, 폐렴이 주 증상으로 나타나지만 무증상 감염 사례도 드물게 나오고 있다."


     띄어쓰기가 잘 되는 것을 보니 마음이 편안해지네요 ㅎ.ㅎ 하지만 주의하실 점은 200자 글자 제한이 있습니다. 몇 마디만 더 추가해서 spacing()을 실행하면 결과는 다음과 같습니다.

    spacing("코로나바이러스감염증19는2019년12월중국우한에서처음발생한뒤전세계로확산된새로운유형의코로나바이러스에의한호흡기감염질환이다.코로나바이러스감염증19는감염자의비말(침방울)이호흡기나눈·코·입의점막으로침투될때전염된다.감염되면약2~14일의잠복기를거친뒤발열및기침이나호흡곤란등호흡기증상,폐렴이주증상으로나타나지만무증상감염사례도드물게나오고있다.다들코로나바이러스조심하시고나가실때는꼭마스크를착용하고다니세요.")
    ## Warning in FUN(X[[i]], ...): One sentence can not contain more than 198 characters. : 코로나바이러스감염증19는2019
    ## 년12월중국우한에서처음발생한뒤전세계로확산된새로운유형의코로나바이러스에의한호흡기감염질환이다.코로나바이러스감염증
    ## 19는감염자의비말(침방울)이호흡기나눈·코·입의점막으로침투될때전염된다.감염되면약2~14일의잠복기를거친뒤발열및기침이나
    ## 호흡곤란등호흡기증상,폐렴이주증상으로나타나지만무증상감염사례도드물게나오고있다.다들코로나바이러스조심하시고나가실
    ## 때는꼭마스크를착용하고다니세요.
    ## [1] "코로나 바이러스 감염증 19는 2019년 12월 중국 우한에서 처음 발생한 뒤 전 세계로 확산된 새로운 유형의 코로나 바이러스에 의한 호흡기 감염 질환이다. 코로나 바이러스 감염증 19는 감염자의 비말(침방울)이 호흡기나 눈·코·입의 점막으로 침투될 때 전염된다. 감염되면 약 2~14일의 잠복기를 거친 뒤 발열 및 기침이나 호흡곤란 등 호흡기 증상, 폐렴이 주 증상으로 나타나지만 무증상 감염 사례도 드물게 나오고 있다. 다들 코로나바이러스 조심하시고 나가실 때"


     경고 메세지가 뜨면서 200자까지만 띄어쓰기가 진행되는 모습입니다. 이를 해결하기 위해서는 다양한 방법이 있겠지만 처음에 든 생각은 마침표를 기준으로 문장을 나눠서 띄어쓰기를 진행한 후에, 다시 뭉치는 방법이었습니다.

    txt <- "코로나바이러스감염증19는2019년12월중국우한에서처음발생한뒤전세계로확산된새로운유형의코로나바이러스에의한호흡기감염질환이다.코로나바이러스감염증19는감염자의비말(침방울)이호흡기나눈·코·입의점막으로침투될때전염된다.감염되면약2~14일의잠복기를거친뒤발열및기침이나호흡곤란등호흡기증상,폐렴이주증상으로나타나지만무증상감염사례도드물게나오고있다.다들코로나바이러스조심하시고나가실때는꼭마스크를착용하고다니세요."
    
    
    split.txt <- strsplit(txt, split = '\\.')
    
    for (i in 1:length(split.txt)) {
      spacing.txt <- NULL
      for (j in 1:length(split.txt[[i]])) {
        spacing.txt <- paste(spacing.txt, 
                             paste(spacing(split.txt[[i]][j]), ".", sep = ''),
                             sep = ' ')
      }
    }


     결과를 한번 볼까요?

    spacing.txt
    ## [1] " 코로나 바이러스 감염증 19는 2019년 12월 중국 우한에서 처음 발생한 뒤 전 세계로 확산된 새로운 유형의 코로나 바이러스에 의한 호흡기 감염 질환이다. 코로나 바이러스 감염증 19는 감염자의 비말(침방울)이 호흡기나 눈·코·입의 점막으로 침투될 때 전염된다. 감염되면 약 2~14일의 잠복기를 거친 뒤 발열 및 기침이나 호흡곤란 등 호흡기 증상, 폐렴이 주 증상으로 나타나지만 무증상 감염 사례도 드물게 나오고 있다. 다들 코로나바이러스 조심하시고 나가실 때는 꼭 마스크를 착용하고 다니세요."


     아주 제대로 들어가있네요! 너무 조와요. 그럼 여기서 글 마치겠습니다.

     :)




Designed by Tistory.