как установить автора для каждого документа в корпусе путем анализа идентификатора документа

У меня есть объект tm Corpus, подобный этому:

> summary(corp.eng)
A corpus with 154 text documents

The metadata consists of 2 tag-value pairs and a data frame
Available tags are:
  create_date creator 
Available variables in the data frame are:
  MetaID

Метаданные для каждого документа в корпусе выглядят следующим образом:

> meta(corp.eng[[1]])
Available meta data pairs are:
  Author       : 
  DateTimeStamp: 2013-04-18 14:37:24
  Description  : 
  Heading      : 
  ID           : Smith-John_e.txt
  Language     : en_CA
  Origin       :

Я знаю, что могу установить автора одного документа за раз с помощью этого:

meta(corp.eng[[1]],tag="Author") <-  
  paste(
    rev(
      unlist(
        strsplit(meta(corp.eng[[1]],tag="ID"), c("[-_]"))
      )[1:2]
    ), collapse=' ')

что дает мне такой результат:

> meta(corp.eng[[1]],tag="Author")
[1] "John Smith" 

Как мне пакетировать работу?


r tm
person dnagirl    schedule 18.04.2013    source источник


Ответы (1)


ПРИМЕЧАНИЕ. Вероятно, это все еще должен быть комментарий, но есть некоторая рабочая часть, поэтому вот пример:

data(crude)
extracted.values <- meta(crude,tag="Places",type="local")
for (i in seq_along(extracted.values)) {
     meta(crude[[i]],tag="Places") <- substr(extracted.values[[i]],1,3)
}

Можно было бы сделать это и с помощью lapply, но, поскольку я не знаком с внутренней работой tm, я буду придерживаться цикла. Замените функцию substr на ту, которая вам нужна, и данные с левой стороны, конечно же. Надеюсь это поможет.

person Maxim.K    schedule 18.04.2013
comment
описание meta {tm} inside-r.org/packages/cran/tm /docs/мета. tm имеет набор данных, называемый сырым. Хотя мой конкретный анализ идентификатора неприменим, применение любой функции было бы хорошо, если вы хотите использовать ее для тестирования. - person dnagirl; 18.04.2013
comment
lapply возвращает список. Мне нужно отредактировать корпус на месте. - person dnagirl; 18.04.2013