################### 	hogwarts.properties     ###################


##############################
#  Basic definitions
##############################

# Trace: 0 - FLW, 1 - DBG, 2 - DTL
TraceLevel 2


##############################
#  Files
##############################

# stop word files: [lewis_sorted_uniq.txt, lewis_smart_sorted_uniq.txt]
StopWordsFile   d:/users/gabr/work/phd/code/data/lexicon/lewis_smart_sorted_uniq.txt

# list of titles
TitlesFile      d:/users/gabr/work/phd/code/data/lexicon/titles.txt

#WordNet: only stemmer exception files are found under PhD/Code/...
#WordNetDataDir  d:/users/gabr/work/phd/code/data/wordnet
WordNetDataDir  d:/programs/wn16/dict

BrillDataDir    d:/users/gabr/work/phd/code/data/brill

DataSetsDir     d:/resources/data
DataSetsDir2    d:/resources2/data
OutputDir       d:/playground

# various corpora info, such as lists of categories to generate
CorporaInfoDir  d:/users/gabr/work/phd/code/data/corpora

# RCV1-v2 missing topic codes
RCV1v2MissingTopicCodes rcv1_missing_topics_codes.txt

# RCV1-v2 documents without region codes
RCV1v2DocumentsWithoutRegionCodes rcv1_no_region_codes.txt

# RCV1-v2 documents without topic codes
RCV1v2DocumentsWithoutTopicCodes rcv1_no_topic_codes.txt


##############################
#  Data set
##############################

# DataSet: Reuters21578, RCV1, OHSUMED, 20ng, MovieReviews, DMoz
#DataSet Reuters21578
#DataSet RCV1
#DataSet 20NG
DataSet DMoz
#DataSet MovieReviews

# Directory from which to take Movie data.
# This parameter allows to take either the distributed tokenized data,
# or the original text reacquired from raw HTMLs
# [original_text, tokens_cleaned]
MovieReviewsDir tokens_cleaned

# Directory which contains an individual DMoz data set

# RCV1 category code set to classify
# [topic, industry, region]
RCV1CategoryCodeSet topic

# RCV1 last date for training
# Documents dated at or before this date comprise the training set,
# while all the later document comprise the testing set
# Format example: 1996-08-31
RCV1LastDateForTraining 1997-04-14

# RCV1 last date for testing
# Documents dated after 'RCV1LastDateForTraining' but
# before this date (inclusively) comprise the testing set,
# while all the later document are ignored.
# The main purpose of this setting is to be used together with
# 'RCV1LastDateForTraining' in order to use only a fraction of
# data in RCV1.
# Format example: 1996-08-31
RCV1LastDateForTesting 1998-01-01

# Convert to RCV1-v2 (only meaningful for the RCV1 collection)
# [true, false]
ConvertToRCV1v2 true

# first file id
# [corpus specific: Reuters21278 starts from 0]
FirstFileId 0

# last file id (inclusive)
# [corpus specific: Reuters21278 ends at 21]
LastFileId 21

# Category restriction: only generate data for these categories (if specified).
# This parameter specifies the name of the file that contains a list of categories,
# one per line.
# NOTE: This restriction can be of two types:
#       1) Soft - the entire collection is processed during feature discovery
#                 to collect statistics and to subsequently perform feature selection.
#                 This mechanism only limits the amount of data to be generated.
#       2) Hard - the entire collection is restricted to the categories given,
#                 while all other category labels are ignored
#       The actual type is given by the configuration parameter 
#       'GenerateRestrictionType' (see below)
#GenerateCategories reut_10.cats
#GenerateCategories 20news.cats

# This parameter prescribes how to interpret the category restriction given
# by the parameter 'GenerateCategories' - whether to perform feature discovery on
# all categories, or only on those specified by the restriction. 
# Possible values:
# 1) true (i.e., soft restriction) - 
#    The entire collection is processed during feature discovery
#    to collect statistics and to subsequently perform feature selection.
#    This mechanism only limits the amount of data to be generated.
#    ==> This setting is useful for processing huge data collections (e.g., RCV1)
#        for which it's impossible to simultaneously generate data for all 
#        the categories (due to the disk space restrictions).
# 2) false (i.e., hard restriction) - 
#    The entire collection is restricted to the categories given,
#    while all other category labels are ignored.
#    ==> This setting is useful to restrict the data set to only a few categories
#        (i.e., to define a subset of the entire data set)
# [true, false]
SoftGenerateRestriction true


##############################
#  Data acquisition settings
##############################

# Title replication: number of times to replicate the document title
# before concatenating it with the document body.
# Notes: 
# 1) Setting this parameter to 0 will ignore the title altogether !
# 2) Setting this parameter to values higher than 3 is probably
#    only useful for reasonably long documents (i.e., those much
#    longer than the title itself)
# [0, 1, 2, 3, ...]
TitleReplication 1

# remove stop words [true, false]
RemoveStopWords false

# remove numbers [true, false]
RemoveNumbers false

# remove mixed alphanumeric strings (e.g., Win2k) [true, false]
RemoveMixedAlphaStrings false

# stemming [none = 0, mild = 1, aggressive = 3]
StemmingMode 0

# Whether to use part-of-speech information for indexing.
# That is, whether to index documents with plain words 
# (possibly stemmed) or with items of the form "word/POS", 
# where 'POS' is the word's part-of-speech. To limit the
# number of possibilities, possible values of 'POS' are
# restricted to open class tags or 'none' (expressed as
# numbers 1, 2, 3, 4 or -1).
# If WordNet expansion is configured, this setting also affects 
# the words added through this expansion. That is, features
# added from WordNet (words or synsets) are used as "feature/POS".
# [true, false]
IndexWithPOS false

# minimum collection frequency required for features
# [0 - mechanism disabled, 1, 2, ...]
MinCollectionFrequency 0

# minimum document frequency required for features
# [0 - mechanism disabled, 1, 2, ...]
MinDocumentFrequency 0

# whether to use extra (unused) documents, i.e., those
# not in the training or testing set, for estimating
# feature distribution
# (Beware, that in Reuters many unused documents actually
# belong to various categories, but are not marked as such,
# hence using them for estimating category-specific feature
# distribution is wrong !)
# [true, false]
UseExtraDocuments false

# whether to use testing documents for estimating
# feature distribution - this is only legal when
# feature distribution is estimated globally, i.e.,
# without using category-specific feature probabilities.
# In fact, the only such measure is the non-category-specific
# version of Document Frequency (as described in \cite{Yang:1997:CSF}).
# [true, false]
UseTestDocuments false


##############################
#  WordNet settings
##############################

# whether to perform WordNet expansion
# [true, false]
ExpandWithWordnet false

# whether to expand with synsets (= senses) or plain words
# [true - synsets, false - words]
ExpandWithSynsets true

# Whether to perform joint analysis of original and expansion features.
# This step compares the utility of the expansion feature to that
# of its prototype (the original feature), and decides which of the
# two features to select (or both).
# [true, false]
JointAnalysisOfExpansionFeatures false

# Whether to remove expanded words from document representation.
# Note that this only makes sense when expanding with synsets 
# (this way we simulate indexing with senses, when only words 
#  that could not be expanded are preserved).
# [true, false]
RemoveExpandedWords false

# Whether to use part-of-speech information (from Brill's tagger)
# [true, false]
WordnetLookupByPOS false

# maximum relation depth explored
# [0, 1, 2, 3, ...]
MaxDepth 1

# Relation levels to skip (this feature is useful for generalizations).
# Levels below or equal to this value are ignored.
# Note that this is NOT exactly the NUMBER of levels to skip, since 
# the value is zero-based. That is, for example, if the value of this 
# parameter is zero, then immediate synsets (i.e., those containing 
# the word being expanded) are skipped.
# [-1 - use all synsets,
#   0 - ignore synsets at level 0 (those containing the word being expanded),
#   1 - ignore synsets containing synonyms + immediate hypernyms
#       (and possibly other relations at one edge distance from the word),
#   2 - ...]
LevelsToSkip -1

# Relation weight
# The value of 'NoDamping' parameter defines whether this weight is constant 
# for all levels, or serves as a damping factor for each edge.
# [float, 0 - 1]
RelationWeight 0.5

# Whether to decrease the relation weight with each edge.
# If 'true', then the weight of all the added features
# (regardless of the hierarchy level at which they were collected)
# is constant and equal to 'RelationWeight'. Otherwise, the weight is 
# decreased with each level, and the value of 'RelationWeight' serves 
# as a damping factor.
# [true, false]
NoDamping false

# fractional document frequency
# [true, false]
FractionalDocFreq false

# Maximum polysemy count for word expansion -
# words with more senses are NOT expanded.
# This mechanism also serves for limiting the
# polysemy count of expansion words (i.e.,
# words being added through WordNet expansion).
# [0 - mechanism disabled, 1, 2, ...]
MaxPolyCount 5

# Expand up to this number of synsets (remember that 
# synsets are ordered by frequency of usage).
# [0 - mechanism disabled, 1, 2, ...]
NumSynsets 0

# Whether to limit the ambiguity (i.e., polysemy count)
# of expansion words (i.e., words being added through 
# WordNet expansion).
# [true, false]
LimitExpansionWordAmbiguity false

# parts of speech to expand
# [0 - all parts of speech (same as 4, added for convenience),
#  1 - nouns, 
#  2 - nouns + verbs,
#  3 - nouns + verbs + adjectives,
#  4 - nouns + verbs + adjectives + adverbs]
ExpandPartsOfSpeech 0


###################################
#  Feature construction settings
###################################

# whether to perform feature construction [true, false]
PerformFeatureConstruction false

# feature construction option
# [0 - same sentence, 1 - 'near']
FeatConstOption 0

# window width for the 'near' operator
NearWindowWidth 10

# Weight of constructed features, relevant to that of original features
# [float]
ConstructedFeatureWeight 1.0


###########################################
#  Brill part of speech tagger settings
###########################################

# lexicon file [lexicon.brown, lexicon.wsj, lexicon.brown.and.wsj]
BrillLexicon  lexicon.brown.and.wsj

# bigrams file
BrillBigrams  bigrams

# list of transformations used for initial tagging of words 
# not in the lexicon
# [lexical_rule_file.brown, lexical_rule_file.wsj]
BrillLexicalRuleFile  lexical_rule_file.wsj

# list of contextually triggered transformations
# [contextual_rule_file.brown, contextual_rule_file.wsj.nolex,
#  contextual_rule_file.wsj]
BrillContextualRuleFile  contextual_rule_file.wsj


##############################
#  Feature selection settings
##############################

# feature selection technique- XX:YY, where
# XX = [DF, TIG, IG, MI, CHI, OR, NGL, GSS, RND] - feature selection algorithm
# YY = [sum, wavg, max, df, local] - prescribes how
#      category-specific feature scores are combined to obtain
#      global scores. 'local' prescribes to perform local
#      (category-specific) feature selection, 
#      so the scores need not be combined
# 'DF:df' is a special setting that prescribes to perform feature
# selection by estimating collection-wide document frequency of terms
# (i.e., without computing category-specific frequencies first)
#
# Good combinations (see \cite{Sebastiani:2002:MLA}): 
#      OR:sum, NGL:sum, GSS:max, CHI:max, TIG:sum, IG:sum, MI:max, DF:wavg, 
#      and DF:df (\cite{Yang:1997:CSF})
FeatureSelection TIG:sum

# how many features to leave after feature selection
# (either global or category specific)
# [fractional value (0 .. 1) - fraction of features to select, 
#  e.g., 0.1 - take 10% of features, 1 - take all features]
FracSelectFeatures 1.0

# how many *expansion* features to leave after feature selection
# (either global or category specific)
# [fractional value (0 .. 1) - fraction of features to select, 
#  e.g., 0.1 - take 10% of features, 1 - take all features.
#  Any negative value prescribes to perform feature selection only
#  once, from a combined set of original and expansion features.]
FracSelectExpansionFeatures 0.0

# minimum number of features to leave anyway
# (especially useful for category-specific feature selection,
# when some small categories have only a few features)
# [0 - mechanism disabled, or any other integer value]
MinSelectFeatures 0

# Big difference for joint FS analysis
JointAnalysisBigDifference 1.25


##############################
#  Meta-learning settings
##############################

# Number of feature subsets to test
NumFeatureSubsets 0

# Number of features per subset
FeatureSubsetSize 0


##############################
#  Meta-features settings
##############################

# Whether to collect meta-features for regular features
# [true, false]
UseMetafeatures false

# Discard features that have no metafeatures 
# (e.g., words not found in WordNet)
# [true, false]
DiscardFeaturesWithoutMetafeatures false


##############################
#  Search settings
##############################

# Maximum number of expensive state evaluations allowed
SearchMaxStateEvaluations 2000

# Maximum number of consecutive non-improving iterations
# before the search is terminated
# [0 - mechanism disabled, 1, 2, ...]
MaxNonImprovingIterations 5

# Search algorithm [best_first, stochastic_hill_climbing]
SearchAlgorithm stochastic_hill_climbing

# Complexity penalty (to prefer smaller feature subsets) [float]
ComplexityPenalty 0.000001

# Initial state(s) of the search: 
# empty    - empty set of metafeatures
# full     - full set of all available metafeatures
# random   - start with one or more random sets of metafeatures
#            (the number and the cardinality of these sets are
#             given by the parameters "NumInitialRandomStates"
#             and "SizeInitialRandomStates" below)
# explicit - specification of an initial state with manually 
#            selected metafeatures (see parameter "ExplicitInitialState")
InitialSearchState empty

# If the initial search state(s) should be generated randomly
# (see parameter "InitialSearchState"), this parameter prescribes
# the number of random states to start from.
NumInitialRandomStates 5

# If the initial search state(s) should be generated randomly
# (see parameter "InitialSearchState"), this parameter prescribes
# the size of random states to start from.
SizeInitialRandomStates 15

# Explicit specification of an initial state with manually 
# selected metafeatures. Metafeature names (WordNet lex files ids)
# should be given as a comma-separated list WITHOUT SPACE
# (owing to a limitation of the configuration file parser).
ExplicitInitialState 5,8,13,14,15,16,17,18,19,20,21,22,23,25,27,33,34,35,38,43

# Whether to use compound search operators
# [true, false]
UseCompoundSearchOperators false

# If compound search operators are used (see parameter 
# "UseCompoundSearchOperators"), this parameter prescribes
# the maximum number of compound operators to generate.
# That is, if MaxNumCompoundOperators = 2, then two compound
# operators are created, one combining the 2 best children,
# and one combining 3 best ones (unless there are not enough
# children to combine).
# [0 - mechanism disabled, 1, 2, ...]
MaxNumCompoundOperators 2


##############################
#  Feature valuation settings
##############################

# tf.idf term weighting scheme - SMART-style encoding (XYZ), where
# X (term frequency)
#   l (logarithmic) = 1 + log(term_freq)
#   L (log-average) = [1 + log(term_freq)] / [1 + log(average term_freq in the doc)]
#          (see \cite{Singhal:1998:ATT} and \cite{Singhal:1996:PDL})
#   a (augmented)   = 0.5 + (0.5 * term_freq) / (max{term-freq in the doc})
#   n (natural)     = term_freq
#   b (binary)      = 1 if term is present in the doc, 0 otherwise
# Y (document frequency) = t (idf) / n (natural)
#   t (idf)         = log(N/doc_freq), where N is the total number of documents
#   n (natural)     = 1.0
# Z (normalization)
#   c (cosine)      = 1 / sqrt[\sum_i (weight_term_i)^2]
#   u (pivoted unique normalization) = 
#     1 / [(1-slope) + 
#          slope * (num of unique words in the doc)/(average num of unique words per doc)]
#   n (no normalization)
#
# NOTE: XYZ are all case-sensitive !!! (e.g., 'l' vs. 'L' in X)
#
# For details, see \cite[pp.541-544]{Manning:2000:FSN}, \cite{Hersh:1994:OHSU},
# \cite{Salton:1988:TWA} and \cite{Singhal:1998:ATT}
TermWeighting nnn

# 'slope' parameter for pivoted unique normalization
# (see \cite{Singhal:1996:PDL} and \cite{Singhal:1998:ATT})
# Good values: 0.2 - 0.25 - 0.3
PivotNormSlope 0.25


##############################
#  Classification parameters
##############################

# 'k' parameter in kNN
# Good values: 30 - 45 - 60
KNearestNeighbors 30

# kNN decision threshold (one threshold for all categories)
# Good values: 0.2 - 0.5
KNNDecisionThreshold 0.3

# Disallow KNN to label a single instance with more than
# one class label OR not to assign any class label.
# When this flag is set, KNN labels every test instance with 
# exactly one label (for the category that best suits this instance).
# In this case, the value of 'KNNDecisionThreshold' is effectively 
# ignored, and some label is always assigned (even the weight of 
# the corresponding category is below the threshold).
# [true, false]
KNNForceSingleLabel false

# classification algorithm
# (also defines the format of output files)
# [svm, c45, knn]
ClassAlgorithm svm


##############################
#  Experimentation settings
##############################

# Percentage of training documents to take
# (useful for building learning curves).
# [fractional value (0 .. 1) - fraction of training documents to take,
#  e.g., 0.1 - take 10% of training documents,
#  1 - take all training documents available]
FracTrainDocs 1.0

# Number of cross-validation folds
# [0 - mechanism disabled, 1, 2, ...]
CVNumFolds 1000

# Cross-validation fold to generate data for
# [0 - mechanism disabled, 1, 2, ..., CVNumFolds]
CVThisFold 1000

# Optionally, we can specify which chunk to use for validation.
# By default, this will be the the next chunk after the
# testing chunk (which is defined by 'CVThisFold').
CVValidationChunk 0

# Type of experiment
# [validation, testing]
# In 'validation' mode, we train on training documents and 
# test on validation ones.
# In 'testing' mode, we train on training + validation documents,
# and test on testing ones.
ExperimentType testing

DMozSet Exp_10341_10755 
