필기---chap2 텍스트 자료와 어휘 자원 얻기
쿠템버그 어료고
import nltk
nltk.corpus.gutenberg.fileids()
[u'austen-emma.txt', u'austen-persuasion.txt', u'austen-sense.txt', u'bible-kjv.txt', u'blake-poems.txt', u'bryant-stories.txt', u'burgess-busterbrown.txt', u'carroll-alice.txt', u'chesterton-ball.txt', u'chesterton-brown.txt', u'chesterton-thursday.txt', u'edgeworth-parents.txt', u'melville-moby_dick.txt', u'milton-paradise.txt', u'shakespeare-caesar.txt', u'shakespeare-hamlet.txt', u'shakespeare-macbeth.txt', u'whitman-leaves.txt']
emma = nltk.corpus.gutenberg.words(u'austen-emma.txt')
len(emma)
192427
raw () 함수: 언어학적으로 처리되지 않은 파일의 내용을 줍니다.따라서 예를 들어 렌(gutenberg.raw('blake-poems.txt')은 텍스트에 나타난 어휘 개수를 알려주고 단어 사이의 빈칸을 포함한다.
sents () 함수: 텍스트를 문장으로 나누고, 그 중 한 문장은 하나의 단어 체인표입니다.
macbeth_sentences = gutenberg.sents('shakespeare-macbeth.txt') #
macbeth_sentences[1037]
['Double', ',', 'double', ',', 'toile', 'and', 'trouble', ';',
'Fire', 'burne', ',', 'and', 'Cauldron', 'bubble']
longest_len = max([len(s) for s in macbeth_sentences]) #
[s for s in macbeth_sentences if len(s) == longest_len]
네트워크 및 채팅 텍스트
NLTK의 인터넷 텍스트 모음집은 Firefox 교류 포럼, 뉴욕에서 무심코 들은 대화, 카리브 해적의 시나리오, 개인 광고와 포도주 평론을 포함한다.
from nltk.corpus import webtext
for fileid in webtext.fileids():
print fileid,webtext.raw(fileid)[:60],'...'
실시간 메신저 채팅 응답 자료 라이브러리, 10000장 이상의 게시물 포함;15개의 파일로 나뉘어져 있으며, 파일마다 몇 백 개의 특정 날짜와 특정 연령의 채팅방이 포함되어 있다.파일 이름에는 날짜, 채팅방, 게시물 수가 포함됩니다.
from nltk.corpus import nps_chat
chatroom=nps_chat.posts('10-19-20s_706posts.xml')
chatroom[123]
브라운 어료 라이브러리
브라운 어료 라이브러리는 500개의 서로 다른 출처의 텍스트를 포함하고 텍스트에 따라 분류한다. 예를 들어 뉴스, 사설 등이다.
브라운 자료 라이브러리의 모든 부분의 예시 문서
ID
서류
문체
묘사
A16
ca16
뉴스 뉴스
Chicago Tribune: Society Reportage
B02
cb02
사설 편집
Christian Science Monitor: Editorials
C17
cc17
평론
Time Magazine: Reviews
D12
cd12
종교religion
Underwood: Probing the Ethics of Realtors
E36
ce36
취미
Norling: Renting a Car in Europe
F25
cf25
전설
Boroff: Jewish Teenage Culture
G22
cg22
순수문학belleslettres
Reiner: Coping with Runaway Technology
H15
ch15
정부
US Office of Civil and Defence Mobilization: The Family Fallout Shelter
J17
cj19
널리 보기 learned
Mosteller: Probability with Statistical Applications
K04
ck04
소설fiction
W.E.B. Du Bois: Worlds of Color
L13
cl13
추리소설 mystery
Hitchens: Footsteps in the Night
M01
cm01
공상 과학 과학fiction
Heinlein: Stranger in a Strange Land
N14
cn15
탐험adventure
Field: Rattlesnake Ridge
P12
cp12
멜로 로맨스
Callaghan: A Passion in Rome
R06
cr06
유머
Thurber: The Future, If Any, of Comedy
from nltk.corpus import brown
brown.categories() #
brown.words(categories='news')#
brown.words(fileids=['cg22'])
brown.sents(categories=['news', 'editorial', 'reviews'])
브라운 어료 라이브러리는 문체 간의 체계적인 차이를 연구하는 문체학이라는 언어학 연구이다
서로 다른 문체 중의 정태 동사의 용법을 비교하다.
첫 번째 단계: 특정 문체의 계수를 생성한다.
from nltk.corpus import brown
news_text=brown.words(categories='news')# s
fdist=FreqDist([w.lower() for w in news_text])# ,
modals=['can','could','may','might','must','will']
for m in modals:
print m+':',fdist[m],
from nltk.corpus import brown
import nltk
cfd = nltk.ConditionalFreqDist((genre, word)
for genre in brown.categories()
for word in brown.words(categories=genre))
genres = ['news', 'religion', 'hobbies', 'science_fiction', 'romance', 'humor']
modals = ['can', 'could', 'may', 'might', 'must', 'will']
cfd.tabulate(conditions=genres, samples=modals)
# cfd가 작성한 공백을 한 줄에 두지 말고 두 for 순환의 배치 위치를 주의하십시오.실행 결과는 다음과 같습니다.
can could may might must will
news 93 86 66 38 50 389
religion 82 59 78 12 54 71
hobbies 268 58 131 22 83 264
science_fiction 16 49 4 12 8 16
romance 74 193 11 51 45 43
humor 16 30 8 8 9 13
분석한 결과 뉴스 문체에서 가장 흔히 볼 수 있는 정태동사는will이고 언정문체에서 가장 흔히 볼 수 있는 정태동사는could이다.
로이터 통신 자료 라이브러리
로이터 통신 자료 라이브러리에는 10788개의 뉴스 문서가 포함되어 있으며 모두 130만 글자가 있다.90개 주제로 나뉘어'훈련'과'테스트'에 따라 두 조로 나뉜다.
from nltk.corpus import reuters
reuters.fileids() #
reuters.categories() #
# , 。 fileid fileids
reuters.categories('traing/9865')
reuters.categories(['traing/9865','traing/9880'])
reuters.fileids('barley')
reuters.fileids(['barley','corn'])
#
reuters.words('traing/9865')[:14]
reuters.words(['traing/9865','traing/9880'])
reuters.words(categories='barley')
reuters.words(categories=['barley','corn'])
취임 연설 자료 라이브러리에서america와citizen의 시간 추이에 따른 사용 상황을 관찰한다.
from nltk.corpus import inaugural
import nltk
#inaugural.fileids()
#[fileid[:4] for fileid in inaugural.fileids()]
cfd=nltk.ConditionalFreqDist((target,fileid[:4])
for fileid in inaugural.fileids()
for w in inaugural.words(fileid)
for target in ['america','citizen']
if w.lower().startswith(target))
cfd.plot()
실행 결과는 위의 그림과 같습니다. cfd 형식, 세 개의 for 순환과if 정렬을 주의하십시오. matplotlib 패키지를 설치하면 패키지를 호출하지 않아도 그림을 그릴 수 있습니다.
마크업 텍스트 자료 라이브러리
많은 텍스트 자료 라이브러리에는 언어학적 표시, 어적 표시, 명명 실체, 문법 구조, 의미 역할 등 다른 언어의 자료 라이브러리가 포함되어 있다
텍스트 자료 라이브러리의 구조
텍스트 자료 라이브러리의 일반적인 구조:
가장 간단한 자료 라이브러리는 특별한 조직이 없는 고립된 텍스트 집합이다.일부 자료 라이브러리는 문체(브라운 자료 라이브러리) 등 분류에 따라 조직 구조를 구성한다.일부 분류는 주제 분류 (로이터 통신 자료 라이브러리) 와 같이 중첩될 수 있다.또 다른 일부 자료 라이브러리는 시간에 따라 언어 용법의 변화를 나타낼 수 있다(취임 연설 자료 라이브러리).
예제
묘사
fileids()
자료 라이브러리의 파일
fileids([categories])
이 분류에 대응하는 자료 라이브러리의 파일
categories()
자료 라이브러리의 분류
categories([fileids])
이 파일들에 대응하는 자료 라이브러리의 분류
raw()
자료 라이브러리의 원시 내용
raw(fileids=[f1,f2,f3])
파일의 원래 컨텐트 지정하기
raw(categories=[c1,c2])
분류의 원래 컨텐트 지정
words()
전체 어료 라이브러리의 어휘
words(fileids=[f1,f2,f3])
파일의 단어 지정
words(categories=[c1,c2])
분류 중의 어휘를 지정하다
sents()
분류 중인 문장 지정
sents(fileids=[f1,f2,f3])
파일의 문장 지정하기
sents(categories=[c1,c2])
분류 중인 문장 지정
abspath(fileid)
디스크에 파일 위치 지정하기
encoding(fileid)
파일 인코딩 (알면)
open(fileid)
지정한 자료 라이브러리 파일의 파일 흐름 열기
root()
로컬에 설치된 자료 라이브러리 루트 디렉터리 경로
자료 라이브러리 접근 방법 간의 차이점:
raw=gutenberg.raw('burgess-busterbrown.txt')#
raw[1:20]
words=gutenberg.words('burgess-busterbrown.txt')#
words[1:20]
sents=gutenberg.sents('burgess-busterbrown.txt')#
sents[1:20]
자신의 언어 자료 라이브러리 불러오기
파일 시스템의 파일 위치 확인하기;다음 예에서, 우리는 당신의 파일이/usr/share/dict 디렉터리에 있다고 가정합니다.어떤 위치든지 변수를 corpusroot의 값을 이 디렉터리로 설정합니다.PlaintextCorpusReader 초기화 함수
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.