+++ /dev/null
-# #* Textometrie
-# #* ANR project ANR-06-CORP-029
-# #* http://textometrie.ens-lsh.fr/
-# #*
-# #* 2008 (C) Textometrie project
-# #* BSD New and Simplified BSD licenses
-# #* http://www.opensource.org/licenses/bsd-license.php
-#
-# ## Sylvain Loiseau <sloiseau@u-paris10.fr>
-#
-# ##
-# ## Ex. : type1 = 7 occ., type2 = 4 occ., separator = 11
-# ## Cf. Lafon, 1981 : 120 sqq.
-# ##
-# ## phyper(0:4, 4, 7 + 11, 7)
-# ##
-#
-# ##
-# ## wrapper for the function "cooccurrences.directed.contexts" given a factor as
-# ## corpus and a separator.
-# ##
-
-cooccurrences <- function(corpus) {
- stop("not implemented yet");
-}
-
-#
-# `cooccurrences.directed.corpus` <-
-# function (corpus, separator) {
-# if (! is.factor(corpus)) stop("The corpus must be a factor.");
-# if (! is.character(separator)) stop("Separator must be a character vector.");
-# if (length(separator) != 1) stop("Separator must be a character of length 1");
-#
-# corpus <- corpus[drop=TRUE];
-# frequencies = table(corpus);
-# separatorfrequency = frequencies[separator];
-# if (is.na(separatorfrequency)) {
-# separatorfrequency = 0;
-# }
-# frequencies = frequencies[names(frequencies) != separator];
-# types <- levels(corpus);
-# types <- types[types != separator];
-#
-# contexts = get.contexts(corpus, separator);
-#
-# return(cooccurrences.directed.contexts(contexts, types, frequencies, separatorfrequency));
-# }
-#
-# ##
-# ## Compute all the cooccurrence indices according to a context list (see the "get.contexts" function"),
-# ## the vector of types to be taken into account, their frequency, and the separator frequency.
-# ##
-# ## Compute the cooccurrency index (based on hypergeometric cumulative
-# ## probability) for each directed pair of token and return a matrix with tokens as column names
-# ## and row names where each cell give a cooccurrency index
-# ##
-#
-# `cooccurrences.directed.contexts` <-
-# function(contexts, types, type.frequencies, separator.frequency) {
-#
-# all.cooccurrences.index <- matrix(0.0, nrow=length(types), ncol=length(type));
-# rownames(all.cooccurrences.index) <- types;
-# colnames(all.cooccurrences.index) <- types;
-#
-# for (i in 1:length(types)) {
-# type = types[i];
-# typefrequency = frequencies[i];
-# for (j in c(1:(types-1), (types + 1):length(types))) {
-# othertype = types[j];
-# othertypefrequency = frequencies[j];
-# cooccurrences = cooccurrences.frequency(contexts, type, othertype);
-# all.cooccurrences.index[type, othertype] <-
-# cooccurrences.directed.cooccurrents(cooccurrences, type, othertype, separatorfrequency);
-# }
-# }
-#
-# return(all.cooccurrences.index);
-# }
-#
-# ##
-# ## In a list of contexts (see the "get.contexts" function), count the number of contexts
-# ## having both at least one occurrence of type1 and at least one occurrence of type2.
-# ##
-#
-# `cooccurrences.frequency` <-
-# function(contexts, type1, type2) {
-#
-# if (! is.character(type1)) stop("Type1 must be a character vector.");
-# if (length(type1) != 1) stop("Type1 must be a character of length 1");
-# if (! is.character(type2)) stop("Type2 must be a character vector.");
-# if (length(type2) != 1) stop("Type2 must be a character of length 1");
-#
-# is.cooccurring <- sapply(contexts,
-# function(x) {
-# if(type1 %in% x && type2 %in% x) return(1) else return(0)
-# }
-# );
-# return(sum(is.cooccurring));
-# }
-#
-# ##
-# ##
-# ##
-#
-# `cooccurrences.directed.cooccurrents` <-
-# function(cooccurrences, type1, type2, separator) {
-# if (! is.integer(cooccurrences)) stop("cooccurrences must be integer.");
-# if (! is.integer(type1)) stop("type1 must be integer.");
-# if (! is.integer(type2)) stop("type2 must be integer.");
-# if (! is.integer(separator)) stop("separator must be integer.");
-# ph <- phyper(found, type2, type1 + separator, type1);
-# return(ph);
-# }
-#
-# ##
-# ## Create a list of character vectors according to a character vector and a separator string.
-# ##
-#
-# `get.contexts` <-
-# function(corpus, separator) {
-# if (! is.factor(corpus)) stop("The corpus must be a factor.");
-# if (! is.character(separator)) stop("Separator must be a character vector.");
-# if (length(separator) != 1) stop("Separator must be a vector of length 1");
-#
-# index.separator = which(corpus == separator);
-# contexts = list();
-# lastindex = 1;
-# for(i in 1:(length(index.separator))) {
-# contexts[[i]] = as.character(corpus[lastindex:(index.separator[i]-1)]);
-# lastindex=index.separator[i] + 1;
-# }
-# contexts[[length(contexts) + 1]] <- as.character(corpus[lastindex:length(corpus)]);
-# return(contexts);
-# }
-#
-# ##
-# ## Create a lexical table according to a character vector and a separator string.
-# ##
-#
-# `get.lexical.table` <-
-# function(corpus, separator) {
-# if (! is.factor(corpus)) stop("The corpus must be a factor.");
-# if (! is.character(separator)) stop("Separator must be a character vector.");
-# if (length(separator) == 1) stop("Separator must be a character of length 1");
-#
-# contexts = get.contexts(corpus, separator);
-#
-# corpus <- corpus[drop=TRUE];
-# types <- levels(corpus);
-# types <- types[types != separator];
-#
-# lexical.table <- matrix(0, nrow=length(contexts), ncol=length(types));
-# colnames(lexical.table) <- types;
-#
-# for (i in 1:length(contexts)) {
-# freq.list <- table(contexts[[i]]);
-# lexical.table[i, names(freq.list)] <- freq.list;
-# }
-#
-# return(lexical.table);
-# }
-#
-# `cooccurrences` <-
-# function(type1, type2, separator) {
-# # max = ifelse(f > g, 2*g, i)
-# # #choose(T, t);
-# }
-#