FactivaSource {tm.plugin.factiva} | R Documentation |
Factiva Source
Description
Construct a source for an input containing a set of articles exported from Factiva in the XML or HTML formats.
Usage
FactivaSource(x, encoding = "UTF-8",
format = c("auto", "XML", "HTML"))
Arguments
x |
Either a character identifying the file or a connection. |
encoding |
A character giving the encoding of |
format |
The format of the file or connection identified by |
Details
This function can be used to import both XML and HTML files.
If format
is set to “auto” (the default), the file extension is used
to guess the format: if the file name ends with “.xml” or “.XML”,
XML is assumed; else, the file is assumed to be in the HTML format.
It is advised to export articles from Factiva in the XML format rather than in HTML when possible, since the latter does not provide completely clean information. In particular, dates are not guaranteed to be parsed correctly if the machine from which the HTML file was exported uses a locale different from that of the machine where it is read.
The following screencast illustrates how to export articles in the correct HTML format from the Factiva website: http://rtemis.hypotheses.org/files/2017/02/Factiva-animated-tutorial.gif. Do note that by not following this procedure, you will obtain a HTML file which cannot be imported by this package.
This function imports the body of the articles, but also sets several meta-data variables on individual documents:
-
datetimestamp
: The publication date. -
heading
: The title of the article. -
origin
: The newspaper the article comes from. -
edition
: The (local) variant of the newspaper. -
section
: The part of the newspaper containing the article. -
subject
: One or several keywords defining the subject. -
company
: One or several keywords identifying the covered companies. -
industry
: One or several keywords identifying the covered industries. -
infocode
: One or several Information Provider Codes (IPC). -
infodesc
: One or several Information Provider Descriptions (IPD). -
coverage
: One or several keywords identifying the covered regions. -
page
: The number of the page on which the article appears (if applicable). -
wordcount
: The number of words in the article. -
publisher
: The publisher of the newspaper. -
rights
: The copyright information associated with the article. -
language
: This information is set automatically ifreaderControl = list(language = NA)
is passed (see the example below). Else, the language specified manually is set for all articles. If omitted, the default, "en", is used.
Value
An object of class XMLSource
which extends the class
Source
representing set of articles from Factiva.
Note
It has been found that some Factiva articles contain unescaped characters that are not authorized in XML files. If such articles are included in the input you are trying to import, the XML parser will fail printing a few error messages, and the corpus will not be created at all.
If you experience this bug, please report this to the Factiva Customer Service, which will fix the incriminated article; feel free to ask the maintainer of the present package if needed. In the meantime, you can exclude the problematic article from the XML file: to identify it, proceed by exporting only one half of the original corpus at a time, as many times as needed, and see when it fails; you will eventually find the culprit. (If you know XML, you can use an XML validator to find the relevant part of the file, and fix it by hand.)
Author(s)
Milan Bouchet-Valat
See Also
readFactivaXML
and readFactivaHTML
for the functions
actually parsing individual articles.
getSources
to list available sources.
Examples
## Not run:
## For an XML file
library(tm)
file <- system.file("texts", "reut21578-factiva.xml",
package = "tm.plugin.factiva")
source <- FactivaSource(file)
corpus <- Corpus(source, readerControl = list(language = NA))
# See the contents of the documents
inspect(corpus)
# See meta-data associated with first article
meta(corpus[[1]])
## End(Not run)
## For an HTML file
library(tm)
file <- system.file("texts", "factiva_test.html",
package = "tm.plugin.factiva")
source <- FactivaSource(file)
corpus <- Corpus(source, readerControl = list(language = NA))
# See the contents of the documents
inspect(corpus)
# See meta-data associated with first article
meta(corpus[[1]])