ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 한국어 형태소 분석기 KOMORAN 2.4의 파이썬 버전 태스트
    Python/자연어처리 &형태소 분석기 2015. 4. 18. 13:40



    [웹] - Python을 사용하여 web Scraping


    [웹] - python을 사용하여 웹페이지의 meta 데이터를 읽어오기


    [웹] - 자연어 처리 라이브러리 koNLPy를 우분투 리눅스에 설치해서 태스트 해보기




    아래 주소에서 소스코드 다운로드받아서 /home/webnautes에 압축을 풀어 두었습니다.

    https://github.com/shineware/komoranPy_2.0


    그리고 나서 src에 있는 파이썬 코드를 약간 바꾸어주니 잘 동작했습니다.  자바 라이브러리 경로 설정과 유니코드 문제로 변경이 필요했습니다.



    src/komoran.py 

    압축을 풀은 경로가 /home/webnautes/komoranPy_2.0-master/라서 빨간색 부분으로 수정했습니다. 

    #-*- coding: utf-8 -*- 


    '''

    Created on 2014. 12. 24.


    @author: shin285

    '''

    import jpype


    class KomoranClass():

        def __init__(self, modelPath):

            classpath = ('../lib/komoran-2.4-e.jar:'

                     '../lib/shineware-ds-1.0.jar:'

                    '../lib/shineware-common-2.0.jar')   

            jpype.startJVM(jpype.getDefaultJVMPath(),"-Dfile.encoding=UTF-8","-Djava.class.path=%s" % (classpath))

            

            komoranPkg = jpype.JPackage('kr').co.shineware.nlp.komoran.core.analyzer  # get the package

            Komoran = komoranPkg.Komoran

            self.komoran = Komoran("/home/webnautes/komoranPy_2.0-master/models-full")  # create an instance of the class

    #         self.komoran.setUserDic("/Users/shin285/Documents/workspace_shineware/KOMORAN_2.0_beta/user_data/dic.user")

    #         s = k.analyze('제이디에프 바람과 함께 사라지다를 봤습니다.')

    #         print(s)

        def setUserDic(self,userDic):

            self.komoran.setUserDic(userDic)


        def analyze(self,inStr):

            return self.komoran.analyze(inStr,2)



    src/komoran_tester.py 

    #-*- coding: utf-8 -*-

    '''

    Created on 2014. 12. 24.


    @author: shin285

    '''


    import sys

    reload(sys)

    sys.setdefaultencoding('utf-8')


    from komoran import KomoranClass


    def main():

        komoran = KomoranClass(modelPath="modelsasdf")

        string = "감기는 자주 걸리는 병이다"

        print(komoran.analyze( unicode(string)))

        print('hello')



    if __name__ == '__main__':

        main()



    실행결과입니다.

    webnautes@virtual-machine:~/komoranPy_2.0-master/src$ python komoran_tester.py 

    [[[Pair [first=감기, second=VV], Pair [first=는, second=ETM]], [Pair [first=자주, second=MAG]], [Pair [first=걸리, second=VV], Pair [first=는, second=ETM]], [Pair [first=병, second=NNG], Pair [first=이, second=VCP], Pair [first=다, second=EC]]], [[Pair [first=감기, second=VV], Pair [first=는, second=ETM]], [Pair [first=자주, second=MAG]], [Pair [first=걸리, second=VV], Pair [first=는, second=ETM]], [Pair [first=병, second=NNG], Pair [first=이, second=JKS], Pair [first=다, second=JX]]]]



    사용자 사전을 추가하지 않은 상태에서 전자신문에서 태스트를 해보았습니다. 품사가 NNP, NNG, NNB인 경우가 명사네요 .. 사전을 좀더 추가하면 더 정확해 질듯보입니다.

    http://www.etnews.com/20150417000251?koost=worstnews

    K-ICT 본투글로벌센터, 투자사와 `B2G 투자 커뮤니티` 킥오프

    [[[Pair [first=K, second=SL], Pair [first=-, second=SS], Pair [first=ICT, second=SL]], [Pair [first=보, second=VV], Pair [first=ㄴ, second=ETM], Pair [first=투, second=NNB], Pair [first=글로벌센터, second=NNP], Pair [first=,, second=SP]], [Pair [first=투자, second=NNG], Pair [first=사, second=NNG], Pair [first=와, second=JC]], [Pair [first=`, second=SS], Pair [first=B2G, second=NNP]], [Pair [first=투자, second=NNG]], [Pair [first=커뮤니티, second=NNG], Pair [first=`, second=SS]], [Pair [first=킥, second=NNG], Pair [first=오프, second=NNG]]]]

    -----------------------------------------

    K-ICT 본투글로벌센터(센터장 오덕환, 구 미래글로벌창업지원센터)는 17일 서울 역삼동 삼정호텔에서 열린 ‘B2G 투자 커뮤니티...

    [[[Pair [first=K, second=SL], Pair [first=-, second=SS], Pair [first=ICT, second=SL]], [Pair [first=보, second=VV], Pair [first=ㄴ, second=ETM], Pair [first=투, second=NNB], Pair [first=글로벌센터, second=NNP], Pair [first=(, second=SS], Pair [first=센터, second=NNG], Pair [first=장, second=NNG]], [Pair [first=오덕, second=NNG], Pair [first=화, second=XSN], Pair [first=ㄴ, second=JX], Pair [first=,, second=SP]], [Pair [first=구, second=NNG]], [Pair [first=미래, second=NNG], Pair [first=글로벌, second=NNG], Pair [first=창업, second=NNG], Pair [first=지원, second=NNG], Pair [first=센터, second=NNG], Pair [first=), second=SS], Pair [first=는, second=JX]], [Pair [first=17, second=SN], Pair [first=일, second=NNB]], [Pair [first=서울, second=NNP]], [Pair [first=역삼동, second=NNP]], [Pair [first=삼정, second=NNG], Pair [first=호텔, second=NNG], Pair [first=에서, second=JKB]], [Pair [first=열리, second=VV], Pair [first=ㄴ, second=ETM]], [Pair [first=‘, second=SS], Pair [first=B2G, second=NNP]], [Pair [first=투자, second=NNG]], [Pair [first=커뮤니티, second=NNG], Pair [first=..., second=SE]]], [[Pair [first=K, second=SL], Pair [first=-, second=SS], Pair [first=ICT, second=SL]], [Pair [first=보, second=VV], Pair [first=ㄴ, second=ETM], Pair [first=투, second=NNB], Pair [first=글로벌센터, second=NNP], Pair [first=(, second=SS], Pair [first=센터, second=NNG], Pair [first=장, second=NNG]], [Pair [first=오덕, second=NNG], Pair [first=화, second=XSN], Pair [first=ㄴ, second=JX], Pair [first=,, second=SP]], [Pair [first=구, second=NNG]], [Pair [first=미래, second=NNG], Pair [first=글로벌, second=NNG], Pair [first=창업, second=NNG], Pair [first=지원, second=NNG], Pair [first=센터, second=NNG], Pair [first=), second=SS], Pair [first=는, second=JX]], [Pair [first=17, second=SN], Pair [first=일, second=NNB]], [Pair [first=서울, second=NNP]], [Pair [first=역삼동, second=NNP]], [Pair [first=삼정, second=NNG], Pair [first=호텔, second=NNG], Pair [first=에서, second=JKB]], [Pair [first=열리, second=VV], Pair [first=ㄴ, second=ETM]], [Pair [first=‘, second=SS], Pair [first=B2G, second=NNP]], [Pair [first=투자, second=NNG]], [Pair [first=커뮤니티, second=NNG], Pair [first=.., second=SE], Pair [first=., second=SF]]]]

    =========================================

    http://www.etnews.com/20150417000250?koost=worstnews

    토러스 證, 회원경고조치 받아

    [[[Pair [first=토러스, second=NNP]], [Pair [first=證, second=SH], Pair [first=,, second=SP]], [Pair [first=회원, second=NNG], Pair [first=경고, second=NNG], Pair [first=조치, second=NNG]], [Pair [first=받, second=VV], Pair [first=아, second=EC]]]]

    -----------------------------------------

    [전자신문인터넷 이상원기자] 토러스투자증권이 한국거래소로부터 경고조치를 받았다. 한국거래소 시장감시위원회는 17일 2015년...

    [[[Pair [first=[, second=SS], Pair [first=전자신문, second=NNP], Pair [first=인터넷, second=NNG]], [Pair [first=이상원, second=NNP], Pair [first=기자, second=NNG], Pair [first=], second=SS]], [Pair [first=토러스, second=NNP], Pair [first=투자, second=NNG], Pair [first=증권, second=NNG], Pair [first=이, second=JKS]], [Pair [first=한국거래소, second=NNP], Pair [first=로부터, second=JKB]], [Pair [first=경고, second=NNG], Pair [first=조치, second=NNG], Pair [first=를, second=JKO]], [Pair [first=받, second=VV], Pair [first=았, second=EP], Pair [first=다, second=EF], Pair [first=., second=SF]], [Pair [first=한국거래소, second=NNP]], [Pair [first=시장, second=NNG], Pair [first=감시, second=NNG], Pair [first=위원회, second=NNG], Pair [first=는, second=JX]], [Pair [first=17, second=SN], Pair [first=일, second=NNB]], [Pair [first=2015, second=SN], Pair [first=년, second=NNB], Pair [first=..., second=SE]]], [[Pair [first=[, second=SS], Pair [first=전자신문, second=NNP], Pair [first=인터넷, second=NNG]], [Pair [first=이상원, second=NNP], Pair [first=기자, second=NNG], Pair [first=], second=SS]], [Pair [first=토러스, second=NNP], Pair [first=투자, second=NNG], Pair [first=증권, second=NNG], Pair [first=이, second=JKS]], [Pair [first=한국거래소, second=NNP], Pair [first=로부터, second=JKB]], [Pair [first=경고, second=NNG], Pair [first=조치, second=NNG], Pair [first=를, second=JKO]], [Pair [first=받, second=VV], Pair [first=았, second=EP], Pair [first=다, second=EF], Pair [first=., second=SF]], [Pair [first=한국거래소, second=NNP]], [Pair [first=시장, second=NNG], Pair [first=감시, second=NNG], Pair [first=위원회, second=NNG], Pair [first=는, second=JX]], [Pair [first=17, second=SN], Pair [first=일, second=NNB]], [Pair [first=2015, second=SN], Pair [first=년, second=NNB], Pair [first=.., second=SE], Pair [first=., second=SF]]]]

    =========================================

    http://www.etnews.com/20150417000093?koost=worstnews

    광산업진흥회, 애로해소 원스톱서비스 활성화

    [[[Pair [first=광산업, second=NNP], Pair [first=진흥회, second=NNG], Pair [first=,, second=SP]], [Pair [first=애로, second=NNG], Pair [first=해소, second=NNG]], [Pair [first=원, second=NNB], Pair [first=스톱, second=NNG], Pair [first=서비스, second=NNG]], [Pair [first=활성, second=NNG], Pair [first=화, second=XSN]]], [[Pair [first=광산업, second=NNP], Pair [first=진흥회, second=NNG], Pair [first=,, second=SP]], [Pair [first=애로, second=NNG], Pair [first=해소, second=NNG]], [Pair [first=원, second=NNB], Pair [first=스톱, second=NNG], Pair [first=서비스, second=NNG]], [Pair [first=활성, second=NNG], Pair [first=화, second=NNG]]]]

    -----------------------------------------

    한국광산업진흥회(회장 이재형) 광산업 부흥을 위해 애로해소 원스톱서비스를 본격 활성화하고 있다. 원스톱서비스는 법무, 규제...

    [[[Pair [first=한국, second=NNP], Pair [first=광산업, second=NNP], Pair [first=진흥회, second=NNG], Pair [first=(, second=SS], Pair [first=회장, second=NNG]], [Pair [first=이재형, second=NNP], Pair [first=), second=SS]], [Pair [first=광산업, second=NNP]], [Pair [first=부흥, second=NNG], Pair [first=을, second=JKO]], [Pair [first=위하, second=VV], Pair [first=아, second=EC]], [Pair [first=애로, second=NNG], Pair [first=해소, second=NNG]], [Pair [first=원, second=NNB], Pair [first=스톱, second=NNG], Pair [first=서비스, second=NNG], Pair [first=를, second=JKO]], [Pair [first=본격, second=XR]], [Pair [first=활성, second=NNG], Pair [first=화, second=XSN], Pair [first=하, second=XSV], Pair [first=고, second=EC]], [Pair [first=있, second=VX], Pair [first=다, second=EF], Pair [first=., second=SF]], [Pair [first=원, second=NNB], Pair [first=스톱, second=NNG], Pair [first=서비스, second=NNG], Pair [first=는, second=JX]], [Pair [first=법무, second=NNG], Pair [first=,, second=SP]], [Pair [first=규제, second=NNG], Pair [first=..., second=SE]]], [[Pair [first=한국, second=NNP], Pair [first=광산업, second=NNP], Pair [first=진흥회, second=NNG], Pair [first=(, second=SS], Pair [first=회장, second=NNG]], [Pair [first=이재형, second=NNP], Pair [first=), second=SS]], [Pair [first=광산업, second=NNP]], [Pair [first=부흥, second=NNG], Pair [first=을, second=JKO]], [Pair [first=위하, second=VV], Pair [first=아, second=EC]], [Pair [first=애로, second=NNG], Pair [first=해소, second=NNG]], [Pair [first=원, second=NNB], Pair [first=스톱, second=NNG], Pair [first=서비스, second=NNG], Pair [first=를, second=JKO]], [Pair [first=본격, second=XR]], [Pair [first=활성, second=NNG], Pair [first=화, second=XSN], Pair [first=하, second=XSV], Pair [first=고, second=EC]], [Pair [first=있, second=VX], Pair [first=다, second=EF], Pair [first=., second=SF]], [Pair [first=원, second=NNB], Pair [first=스톱, second=NNG], Pair [first=서비스, second=NNG], Pair [first=는, second=JX]], [Pair [first=법무, second=NNG], Pair [first=,, second=SP]], [Pair [first=규제, second=NNG], Pair [first=.., second=SE], Pair [first=., second=SF]]]]


    참고

    http://libsora.so/posts/python-hangul/

    https://github.com/shineware/komoranPy_2.0

    http://shineware.tistory.com/entry/KOMORAN-ver-24-for-python3

    http://shineware.tistory.com/entry/KOMORAN-ver-24


    포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
    댓글로 알려주시면 빠른 시일내에 답변을 드리겠습니다.

    여러분의 응원으로 좋은 컨텐츠가 만들어집니다. 지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 : )

    유튜브 구독하기


    댓글 0

Designed by Tistory.