더북(TheBook)

다음은 crude 문서 집합 전체의 메타 데이터를 출력하는 예다. 코퍼스 생성 일자와 생성한 사람의 이름이 기록되어 있음을 볼 수 있다.

> data(crude)
> meta(crude, type="corpus")
$create_date
[1] "2010-06-17 07:32:26 GMT"

$creator
   LOGNAME
"feinerer"

local 메타 데이터를 살펴보자.

> meta(crude, type="local")
...
$People
character(0)

$Orgs
character(0)

$Exchanges
[1] "nymex"

Available meta data pairs are:
  Author       :
  DateTimeStamp: 1987-03-02 14:49:06
  Description  :
  Heading      : ARGENTINE OIL PRODUCTION DOWN IN JANUARY 1987
  ID           : 708
  Language     : en
  Origin       : Reuters-21578 XML
User-defined local meta data pairs are:
$TOPICS
[1] "YES"

$LEWISSPLIT
[1] "TRAIN"

$CGISPLIT
[1] "TRAINING-SET"

$OLDID
[1] "12891"

$Topics
[1] "crude"   "nat-gas"

$Places
[1] "argentina"

$People
character(0)

$Orgs
character(0)

$Exchanges
character(0)

local 메타 데이터는 각 문서를 하나씩 꺼내어 살펴보는 것이므로 위와 같이 코드를 입력하면 전체 문서에 대한 데이터가 한꺼번에 나와서 읽기가 쉽지 않다. 대신 각 문서를 직접 지정해 보는 것이 편리하다. 다음은 첫 번째 문서의 메타 데이터만 출력한 예다.

> meta(crude[1], type="local")
Available meta data pairs are:
  Author       :
  DateTimeStamp: 1987-02-26 17:00:56
  Description  :
  Heading      : DIAMOND SHAMROCK (DIA) CUTS CRUDE PRICES
  ID           : 127
  Language     : en
  Origin       : Reuters-21578 XML
User-defined local meta data pairs are:
$TOPICS
[1] "YES"

$LEWISSPLIT
[1] "TRAIN"

$CGISPLIT
[1] "TRAINING-SET"

$OLDID
[1] "5670"

$Topics
[1] "crude"

$Places
[1] "usa"

$People
character(0)

$Orgs
character(0)

$Exchanges
character(0)

local 메타 데이터 안에 저자, 날짜 등의 정보뿐만 아니라 TOPICS 등의 정보도 저장되어 있음을 볼 수 있다.

indexed는 type의 기본값이므로 단순히 meta(corpus) 명령으로 볼 수 있다. 그러나 다음 결과에서 보듯이 crude에는 별다른 indexed 메타 데이터가 없다.

> meta(crude)
   MetaID
1       0
2       0
3       0
4       0
5       0
6       0
7       0
8       0
9       0
10      0
11      0
12      0
13      0
14      0
15      0
16      0
17      0
18      0
19      0
20      0

위 출력 결과를 통해 알 수 있는 점은 local 메타 데이터는 각 문서의 정보와 함께 저장되어 있어 문서별로 볼 수 있고, indexed는 indexed 메타 데이터만 따로 떼어놓고 한 번에 볼 수 있다는 차이가 있다는 것이다.

앞서 DataframeSource( )를 사용한 파일 읽기 방법의 예에서 문서의 분류(spam, nonspam)를 저장하지 않았다. 이 정보를 문서의 indexed 메타 데이터로 저장해보자.

> meta(corpus, "Label") <- docs[, "Label"]
> meta(corpus)
  MetaID   Label
1      0 notspam
2      0 nonspam
3      0    spam
4      0    spam

메타 데이터에 분류가 잘 저장되었다. 이제 이 코퍼스를 사용해 예측 모델을 만들어 볼 수 있을 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.