본문 바로가기
  • Let's go grab a data
Data/Python

한글 말뭉치 리더기 만들기 (세종)

by pub-lican-ai 2018. 12. 11.
반응형

nltk에서 제공하는 아래 영어 말뭉치 리더기 오픈소스를 수정하여 한글 말뭉치 리더기 만들기

영국 말뭉치 http://www.natcorp.ox.ac.uk/

국립국어원 세종말뭉치 프로젝트 언어정보나눔터 https://ithub.korean.go.kr/user/main.do


from nltk.corpus.reader.bnc import BNCCorpusReader

bnc_reader = BNCCorpusReader(

                root='corpus/BNC/2554/download/Texts/',

                fileids=r'[A-Z]/.+/.+\.xml$')

fids = bnc_reader.fileids()

print(len(fids))

fid = bnc_reader.fileids()[0]

fid

4049

bnc_reader.words(fileids=fid) #양이 많음
bnc_reader.tagged_words(fileids=fid)
#BNC에 있는 hw(원형 정보만 불러오기)
bnc_reader.words(fileids=fid, stem=True)
['factsheet', 'what', 'be', 'aids', '?', 'aids', '(', ...]

#이렇게 재정의 하고 사용해야함
class SejongCorpusReader(nltk.corpus.reader.XMLCorpusReader):
    def words(self):
        #TODO
        return
    def tagged_words(self):
        #TODO 
        return


from pyko.reader import SejongCorpusReader

sejong_reader = SejongCorpusReader(

                root='corpus/sejong/',

                fileids=r'(spoken|written)/word_tag/.+\.txt$')

fids = sejong_reader.fileids()

len(fids)

733

sejong_reader.words()
['뭐', '타고', '가?', '지하철.', '기차?', '아침에', ...]

sejong_reader.words(tagged=True)
[('뭐', (('뭐', 'NP'),)), ('타고', (('타', 'VV'), ('고', 'EC'))), ('가?', (('가', 'VV'), ('ㅏ', 'EF'), ('?', 'SF'))), ('지하철.', (('지하철', 'NNG'), ('.', 'SF'))), ('기차?', (('기차', 'NNG'), ('?', 'SF'))), ('아침에', (('아침', 'NNG'), ('에', 'JKB'))), ...]


반응형