SCM

SCM Repository

[tm] Diff of /pkg/R/corpus.R
ViewVC logotype

Diff of /pkg/R/corpus.R

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 36, Wed Jan 11 15:42:56 2006 UTC revision 37, Wed Jan 11 17:49:17 2006 UTC
# Line 3  Line 3 
3  setGeneric("textdoccol", function(object, ...) standardGeneric("textdoccol"))  setGeneric("textdoccol", function(object, ...) standardGeneric("textdoccol"))
4  setMethod("textdoccol",  setMethod("textdoccol",
5            c("character", "character", "logical", "logical"),            c("character", "character", "logical", "logical"),
6            function(object, inputType = "RCV1", stripWhiteSpace = FALSE, toLower = FALSE) {            function(object, inputType = "CSV", stripWhiteSpace = FALSE, toLower = FALSE) {
   
7                # Add a new type for each unique input source format                # Add a new type for each unique input source format
8                type <- match.arg(inputType,c("RCV1","CSV","REUT21578"))                type <- match.arg(inputType,c("CSV","RCV1","REUT21578"))
9                switch(type,                switch(type,
10                       # Read in text documents in XML Reuters Corpus Volume 1 (RCV1) format                       # Text in a special CSV format
11                       # For the moment the first argument is still a single file                       # For details on the file format see the R documentation file
12                       # This will be changed to a directory as soon as we have the full RCV1 data set                       # The first argument is a directory with .csv files
                      "RCV1" = {  
                          tree <- xmlTreeParse(object)  
                          tdcl <- new("textdoccol", .Data = xmlApply(xmlRoot(tree), parseNewsItem, stripWhiteSpace, toLower))  
                      },  
                      # Text in a special CSV format (as e.g. exported from an Excel sheet)  
                      # For details on the file format see data/Umfrage.csv  
                      # The first argument has to be a single file  
13                       "CSV" = {                       "CSV" = {
14                           m <- as.matrix(read.csv(object))                           tdl <- sapply(dir(object,
15                                               pattern = ".csv",
16                                               full.names = TRUE),
17                                           function(file) {
18                                               m <- as.matrix(read.csv(file, header = FALSE))
19                           l <- vector("list", dim(m)[1])                           l <- vector("list", dim(m)[1])
20                           for (i in 1:dim(m)[1]) {                           for (i in 1:dim(m)[1]) {
21                               author <- "Not yet implemented"                                                 author <- ""
22                               timestamp <- date()                               timestamp <- date()
23                               description <- "Not yet implemented"                                                 description <- ""
24                               id <- i                                                 id <- as.integer(m[i,1])
25                               corpus <- as.character(m[i,2:dim(m)[2]])                               corpus <- as.character(m[i,2:dim(m)[2]])
26                               if (stripWhiteSpace)                               if (stripWhiteSpace)
27                                   corpus <- gsub("[[:space:]]+", " ", corpus)                                   corpus <- gsub("[[:space:]]+", " ", corpus)
28                               if (toLower)                               if (toLower)
29                                   corpus <- tolower(corpus)                                   corpus <- tolower(corpus)
30                               origin <- "Not yet implemented"                                                 origin <- "CSV"
31                               heading <- "Not yet implemented"                                                 heading <- ""
32    
33                               l[[i]] <- new("textdocument", .Data = corpus, author = author, timestamp = timestamp,                               l[[i]] <- new("textdocument", .Data = corpus, author = author, timestamp = timestamp,
34                                   description = description, id = id, origin = origin, heading = heading)                                   description = description, id = id, origin = origin, heading = heading)
35                           }                           }
36                           tdcl <- new("textdoccol", .Data = l)                                             l
37                                           })
38                             tdcl <- new("textdoccol", .Data = tdl)
39                         },
40                         # Read in text documents in XML Reuters Corpus Volume 1 (RCV1) format
41                         # The first argument is a directory with the RCV1 XML files
42                         "RCV1" = {
43                             tdl <- sapply(dir(object,
44                                               pattern = ".xml",
45                                               full.names = TRUE),
46                                           function(file) {
47                                               tree <- xmlTreeParse(file)
48                                               xmlApply(xmlRoot(tree), parseNewsItem, stripWhiteSpace, toLower)
49                                           })
50                             tdcl <- new("textdoccol", .Data = tdl)
51                       },                       },
52                       # Read in text documents in Reuters-21578 XML (not SGML) format                       # Read in text documents in Reuters-21578 XML (not SGML) format
53                       # Typically the first argument will be a directory where we can                       # Typically the first argument will be a directory where we can
# Line 50  Line 60 
60                                             tree <- xmlTreeParse(file)                                             tree <- xmlTreeParse(file)
61                                             xmlApply(xmlRoot(tree), parseReuters, stripWhiteSpace, toLower)                                             xmlApply(xmlRoot(tree), parseReuters, stripWhiteSpace, toLower)
62                                         })                                         })
   
63                           tdcl <- new("textdoccol", .Data = tdl)                           tdcl <- new("textdoccol", .Data = tdl)
64                       })                       })
65                tdcl                tdcl
66            })            })
67    
68    # TODO: Implement lacking fields as soon I have access to the original RCV1
69  # Parse a <newsitem></newsitem> element from a well-formed RCV1 XML file  # Parse a <newsitem></newsitem> element from a well-formed RCV1 XML file
70  parseNewsItem <- function(node, stripWhiteSpace = FALSE, toLower = FALSE) {  parseNewsItem <- function(node, stripWhiteSpace = FALSE, toLower = FALSE) {
71      author <- "Not yet implemented"      author <- "Not yet implemented"

Legend:
Removed from v.36  
changed lines
  Added in v.37

root@r-forge.r-project.org
ViewVC Help
Powered by ViewVC 1.0.0  
Thanks to:
Vienna University of Economics and Business University of Wisconsin - Madison Powered By FusionForge