Exemplo n.º 1
0
import os
import word, pdf
from nltk.corpus.reader.plaintext import PlaintextCorpusReader


def getText(txtFileName):
    file = open(txtFileName, 'r')
    return file.read()


# 새로운 corpus 폴더 생성-디렉터리
newCorpusDir = 'mycorpus/'
if not os.path.isdir(newCorpusDir):
    os.mkdir(newCorpusDir)

txt1 = getText('sample_feed.txt')
txt2 = pdf.getTextPDF('sample-pdf.pdf')
txt3 = word.getTextWord('sample-one-line.docx')

# 세 문자열 객체의 내용을 디스크에 파일로 작성(쓰기모드)
files = [txt1, txt2, txt3]
for idx, f in enumerate(files):
    with open(newCorpusDir + str(idx) + '.txt', 'w') as fout:
        fout.write(f)

# 파일을 저장한 디렉터리에서 plaintext 객체 생성
newCorpus = PlaintextCorpusReader(newCorpusDir, '.*')
print(newCorpus.words())  #0.txt 모든 단어 출력
print(newCorpus.sents(newCorpus.fileids()[1]))  #1.txt 문장 출력
print(newCorpus.sents(newCorpus.fileids()[0]))  #0.txt 단락별 출력
Exemplo n.º 2
0
# 2장 처리 전 텍스트, 소싱, 정규화 - 파이썬에서 워드 문서 읽기
import docx
import word

# 문서 경로 초기화 및 전체 문서 출력
docName = '/workspace/NLP_python/codes/Chapter2/Files/sample-one-line.docx'
print('Document in full :\n', word.getTextWord(docName))

# 단락 정보
# 단락 수 출력
doc = docx.Document(docName)
print('단락 수 : ', len(doc.paragraphs))
# 2번 단락만 출력 및 2번 단락 스타일 출력
print('2번 단락 : ', doc.paragraphs[1].text)
print('2번 단락 스타일 : ', doc.paragraphs[1].style)

# 실행(run) 횟수 확인
print('Paragraph 1:', doc.paragraphs[0].text)
print('Number of runs in paragraph 1:', len(doc.paragraphs[0].runs))
for idx, run in enumerate(doc.paragraphs[0].runs):
    print('Run %s : %s' % (idx, run.text))

# 각 실행의 스타일 식별
print('is Run 5 underlined:', doc.paragraphs[0].runs[5].underline)
print('is Run 1 bold:', doc.paragraphs[0].runs[1].bold)
print('is Run 3 italic:', doc.paragraphs[0].runs[3].italic)
    file = open(txtFileName, 'r')
    return file.read()


# 말뭉치 폴더 생성
newCorpusDir = 'mycorpus/'
if not os.path.isdir(newCorpusDir):  # 말뭉치 폴더가 이미 존재하는가?
    os.mkdir(newCorpusDir)

# 파일 읽기
# 일반 텍스트 파일
txt1 = getText('./Files/sample_feed.txt')
# PDF 파일
txt2 = pdf.getTextPDF('./Files/sample-pdf.pdf')
# DOCX 파일
txt3 = word.getTextWord('./Files/sample-one-line.docx')

# 파일 쓰기
files = [txt1, txt2, txt3]
for idx, f in enumerate(files):
    with open(newCorpusDir + str(idx) + '.txt', 'w') as fout:
        fout.write(f)

# 사용자 정의 말뭉치 만들기
# 폴더 내의 모든 파일을 읽어와 파일들로부터 말뭉치를 생성한다
newCorpus = PlaintextCorpusReader(newCorpusDir, '.*')

# 사용자 정의 말뭉치가 잘 만들어 졌는지 확인
print(newCorpus.words())  # 말뭉치의 모든 단어를 포함하는 배열
print(newCorpus.sents(newCorpus.fileids()[1]))  # 1.txt에 있는 모든 문장 배열을 출력
print(newCorpus.paras(newCorpus.fileids()[0]))  # 0.txt에 있는 모든 단락 배열을 출력