Added models and dicts
[svmtool++.git] / readme.txt
bloba619da95813f0728889d1d859d3f1c83f667b1a5
1 ***********************************************************************
2 TOOL:  SVMTool++
3 AUTHOR(s): Jesus Gimenez, Lluis Marquez and Senen Moya
4 DATE:   10/12/2005
5 VERSION: 1.1.4 
6 DESCRIPTION: A general POS tagger generator based on Support Vector Machines.
7 ***********************************************************************
9 Contents
10 --------
12 README.TXT _ this file.
13 makefile   _ file to compile and link SVMTool
14      ./lib _ SVMTool library.
15      ./bin _ executable files:
16                * SVMTagger  _ POS-tagger
17                * SVMTeval   _ evaluation component
18                * SVMTlearn  _ learning component
19                
20 Description
21 -----------
23 SVMT is a very simple and effective part-of-speech tagger based on Support Vector Machines. By means of a rigorous experimental evaluation, we conclude that the proposed SVM-based tagger is robust and flexible for feature modelling (including lexicalization), trains efficiently with almost no parameters to tune, and is able to tag thousands of words per second, which makes it really practical for real NLP applications. Regarding accuracy, the SVM-based tagger significantly outperforms the TnT tagger exactly under the same conditions, and achieves a very competitive accuracy of 97.17% for English on the WSJ corpus, which is comparable to the best taggers reported up to date. This prototype is implemented in C++. 
25 The SVMlight software implementation of Vapnik's Support Vector Machine [Vapnik, 1995] by Thorsten Joachims has been used to train the models. For further information on it see:
27     * T. Joachims, Making large-Scale SVM Learning Practical. Advances in Kernel Methods - Support Vector Learning, B. Schölkopf and C. Burges and A. Smola (ed.), MIT-Press, 1999.
28       [PDF][Postscript (gz)]
32 COMPONENTS:
33 ===========
35 The SVMTool consists of three main components:
37     * SVMTlearn
38     * SVMTagger
39     * SVMTeval
41 These are, namely the learner, tagger and evaluator.
43 ---------------------------------------------------------------------
44 (1) SVMTlearn 
45 ---------------------------------------------------------------------
47 Given a training set of examples (either annotated or unannotated), it is responsible for the training of a set of SVM classifiers. So as to do that, it makes use of SVM-light software package, an implementation of Vapnik's SVMs in C, developed by Thorsten Joachims.
49 Training data must be columned, i.e. a token per line corpus in a sentece by sentence fashion. The token is expected to be the first field of the line. The POS takes the second field in the output. The rest of the line is ignored.
51 SVMTlearn behaviour is easily adjusted through a configuration file. These are the currently available options:
52         - Sliding window (size and core position)
53         - Feature set (word features, POS features, ortographic features)
54         - Feature filtering (count cutoff and max mapping size)
55         - SVM model compression
56         - C parameter tunning
57         - Test [ against a test set or via cross-validation ]
58         - Dictionary repairing (either heuristically and/or based on a correction list)
59         - Ambiguous classes (may be optionally provided)
60         - Open classes (may be optionally provided)
61         - Backup lexicon (may be optionally provided)
64 ---------------------------------------------------------------------
65 (2) SVMTagger
66 ---------------------------------------------------------------------
68 Given a text corpus (one token per line) and the path to a previously learned SVM model (including the automatically generated dictionary), it performs the POS tagging of a sequence of words. The tagging goes on-line based on a sliding window which gives a view of the feature context to be considered at every decision. Calculated part-of-speech tags feed directly forward next tagging decisions as context features.
70 The SVMtagger component works on standard input/output. It processes a token per line corpus in a sentece by sentence fashion. The token is expected to be the first field of the line. The predicted POS will take the second field in the output. The rest of the line remains unchanged. Lines beginning with '##' are just ignored by the tagger.
72 SVMTagger is very flexible, and adapts very well to the needs of the user. Thus you may find the several options currently available:
74         - Tagging scheme (greedy/sentence-level)
75         - Tagging direction (left-to-right, right-to-left, or both)
76         - One pass / Two passes
77         - SVM Model Compression
78         - Get all predicitons (not only the winner)
79         - Use of a softmax function to transform predictions into probabilities
80         - Backup lexicon (may be optionally provided)
83 ---------------------------------------------------------------------
84 (3) SVMTeval
85 ---------------------------------------------------------------------
87 Given a SVMTool predicted tagging output and the corresponding gold-standard, SVMTeval evaluates the performance in terms of accuracy. It is a very useful component for the tunning of the system parameters, such as the C parameter, the feature patterns and filtering, the model compression et cetera.
89 Moreover, based on a given morphological dictionary (e.g. the automatically generated at training time) results may be presented also for different sets of words (known words vs unknown words, ambiguous words vs unambiguous words).  A different view of these same results can be seen from the class of ambiguity perspective, too, i.e., words sharing the same kind of ambiguity may be considered together. Also words sharing the same degree of disambiguation complexity, determined by the size of their ambiguity classes, can be
90 grouped.
92         - mode:
93                 * 0 : full report
94                 * 1 : brief report (overall accuracy) 
95                 * 2 : comparing known vs unknown words
96                 * 3 : grouping words according to their level of ambiguity
97                 * 4 : grouping words according to their class of ambiguity
98                 * 5 : from the part-of-speech point of view
101 ---------------------------------------------------------------------
104 NOTES:
105 ======
107 - If you're interested in getting oncoming updates of this freely available software please do not hesitate to e-mail us, at jgimenez@lsi.upc.edu, or at lluism@lsi.upc.edu
110 CONTRIBUTING:
111 =============
113 The SVMTool library is licensed under LGPL , which means that it may be linked to and used by commercial software packages. But the license also enforces that any changes or improvements made to the library (and in this case also to the morphological data) must be redistributed under LGPL terms.
115 Thus, if you improve the software or data, either adding new functionalities, fixing bugs, or adding analyzers for new languages, you can not distribute them under different conditions than those stated in the license (i.e. freely and with no usage restrictions).
117 If you want that your changes and improvements become useful to many other people using this free software, please contact us ( jgimenez@lsi.upc.edu ).
120 REFERENCES:
121 ==========
123 Please reference this tool in your academic works citing the following paper:
125 * Jesús Giménez and Lluis Màrquez
126   SVMTool: A general POS tagger generator based on Support Vector Machines.
127   Proceedings of the 4th International Conference on Language Resources and Evaluation (LREC'04).
128   Lisbon, Portugal. 2004.