Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
external:tectomt:tutorial [2009/01/21 15:25] popel |
external:tectomt:tutorial [2009/01/22 11:51] kravalova |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== TectoMT Tutorial ====== | ====== TectoMT Tutorial ====== | ||
- | Welcome at TectoMT Tutorial. This tutorial should take about 2 hours. | + | Welcome at TectoMT Tutorial. This tutorial should take about 3 hours. |
Line 7: | Line 8: | ||
===== What is TectoMT ===== | ===== What is TectoMT ===== | ||
- | TectoMT is a highly modular NLP (Natural Language Processing) software system implemented in Perl programming language under Linux. It is primarily aimed at Machine Translation, | + | TectoMT is a highly modular NLP (Natural Language Processing) software system implemented in Perl programming language under Linux. It is primarily aimed at Machine Translation, |
Line 20: | Line 21: | ||
* Your shell is bash | * Your shell is bash | ||
* You have basic experience with bash and can read basic Perl | * You have basic experience with bash and can read basic Perl | ||
+ | |||
+ | |||
+ | |||
+ | |||
Line 33: | Line 38: | ||
==== Installation and setup ==== | ==== Installation and setup ==== | ||
- | * Checkout SVN repository. If you are running this installation in computer lab in Prague, you have to checkout the repository into directory ''/ | + | * Checkout SVN repository. If you are running this installation in computer lab in Prague, you have to checkout the repository into directory ''/ |
<code bash> | <code bash> | ||
cd ~/BIG | cd ~/BIG | ||
- | svn --username | + | svn --username |
</ | </ | ||
Line 47: | Line 52: | ||
</ | </ | ||
- | * In your '' | + | * In your '' |
<code bash> | <code bash> | ||
source ~/ | source ~/ | ||
</ | </ | ||
+ | |||
+ | * In your '' | ||
+ | |||
+ | <code bash> | ||
+ | source .bashrc | ||
+ | </ | ||
+ | |||
+ | |||
Line 115: | Line 128: | ||
There are also other directories for other purpose blocks, for example blocks which only print out some information go to '' | There are also other directories for other purpose blocks, for example blocks which only print out some information go to '' | ||
+ | |||
+ | |||
Line 141: | Line 156: | ||
* A document consists of a sequence of bundles (''< | * A document consists of a sequence of bundles (''< | ||
* Each bundle contains tree shaped sentence representations on various linguistic layers. In our example '' | * Each bundle contains tree shaped sentence representations on various linguistic layers. In our example '' | ||
- | * Trees are formed by nodes and edges. Attributes can be attached only to nodes. Edge's attributes must be equivalently | + | * Trees are formed by nodes and edges. Attributes can be attached only to nodes. Edge's attributes must be stored as the lower node's attributes. Tree's attributes must be stored as attributes of the root node. |
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
Line 172: | Line 194: | ||
SEnglishW_to_SEnglishM:: | SEnglishW_to_SEnglishM:: | ||
SEnglishW_to_SEnglishM:: | SEnglishW_to_SEnglishM:: | ||
- | SEnglishW_to_SEnglishM:: | + | SEnglishW_to_SEnglishM:: |
SEnglishW_to_SEnglishM:: | SEnglishW_to_SEnglishM:: | ||
-- sample.tmt | -- sample.tmt | ||
Line 184: | Line 206: | ||
SEnglishW_to_SEnglishM:: | SEnglishW_to_SEnglishM:: | ||
SEnglishW_to_SEnglishM:: | SEnglishW_to_SEnglishM:: | ||
- | SEnglishW_to_SEnglishM:: | + | SEnglishW_to_SEnglishM:: |
SEnglishW_to_SEnglishM:: | SEnglishW_to_SEnglishM:: | ||
SEnglishM_to_SEnglishA:: | SEnglishM_to_SEnglishA:: | ||
Line 192: | Line 214: | ||
</ | </ | ||
- | //Note//: Makefiles use tabulators to mark command lines. Make sure your lines start with tabulator (or two tabulators) and not, for example, with 4 spaces. | + | //Note//: Makefiles use tabulators to mark command lines. Make sure your lines start with a tabulator (or two tabulators) and not, for example, with 4 spaces. |
After running | After running | ||
Line 201: | Line 223: | ||
we can examine our '' | we can examine our '' | ||
+ | |||
+ | Blocks can also be parametrized. For syntax parser, we might want to use a smaller but faster model. To achieve this, replace the line | ||
+ | |||
+ | <code bash> | ||
+ | SEnglishM_to_SEnglishA:: | ||
+ | </ | ||
+ | |||
+ | with | ||
+ | |||
+ | <code bash> | ||
+ | SEnglishM_to_SEnglishA:: | ||
+ | </ | ||
You can view the trees in '' | You can view the trees in '' | ||
Line 208: | Line 242: | ||
</ | </ | ||
+ | Try to click on some nodes to see their parameters (tag, lemma, form, analytical function etc). | ||
+ | |||
+ | //Note//: For more information about tree editor TrEd, see [[http:// | ||
Line 265: | Line 302: | ||
Attributes of documents, bundles or nodes can be accessed by attribute getters and setters, for example: | Attributes of documents, bundles or nodes can be accessed by attribute getters and setters, for example: | ||
+ | |||
* '' | * '' | ||
* '' | * '' | ||
+ | |||
+ | Some interesting attributes on morphologic layer are '' | ||
+ | |||
+ | <code bash> | ||
+ | tmttred sample.tmt | ||
+ | </ | ||
Our tutorial block '' | Our tutorial block '' | ||
Line 305: | Line 349: | ||
==== Task ==== | ==== Task ==== | ||
A block which, given an analytical tree ('' | A block which, given an analytical tree ('' | ||
+ | |||
+ | |||
+ | |||
+ | |||
Line 352: | Line 400: | ||
* '' | * '' | ||
- | //Note//: '' | + | //Note//: '' |
+ | //Hint//: Finite clauses in English usually require grammatical subject to be present. | ||
+ | ==== Advanced version ==== | ||
- | //Advanced version//: | + | The output of our block might still be incorrect in special cases - we don't solve coordination (see the second sentence in sample.txt) and subordinate conjunctions. |
===== Your turn: more tasks ===== | ===== Your turn: more tasks ===== | ||
+ | |||
+ | |||
+ | |||
+ | |||
Line 380: | Line 434: | ||
**Instructions**: | **Instructions**: | ||
+ | * You can use block template in '' | ||
* To find an object to a verb, look for objects among effective children of a verb ('' | * To find an object to a verb, look for objects among effective children of a verb ('' | ||
* For debugging, a method returning surface word order of a node is useful: '' | * For debugging, a method returning surface word order of a node is useful: '' | ||
* Once you have node '' | * Once you have node '' | ||
+ | |||
+ | **Advanced version**: This solution shifts object (or more objects) of a verb just in front of that verb node. So f.e.: //Mr. Brown has urged MPs.// changes to: //Mr. Brown has MPs urged.// You can try to change this solution, so the final sentence would be: //Mr. Brown MPs has urged.// You may need a method '' | ||
+ | |||
+ | |||
+ | |||
+ | |||
Line 430: | Line 491: | ||
// | // | ||
* On analytical layer, you can use this test to recognize prepositions: | * On analytical layer, you can use this test to recognize prepositions: | ||
- | * You can use block template in '' | ||
* To see the results, you can again use TrEd ('' | * To see the results, you can again use TrEd ('' | ||
+ | **Advanced version**: What happens in case of multiword prepositions? | ||
- | //Advanced version//: What happens in case of multiword prepositions? | ||
- | ===== Further information ===== | ||
- | * [[http:// | ||
- | * Questions? Ask '' | ||
- | * Solutions to this tutorial tasks are in '' | ||
- | * [[http:// | ||
+ | ===== Further information ===== | ||
+ | * [[http:// | ||
+ | * Questions? Ask '' | ||
+ | * Solutions to this tutorial tasks are in '' | ||
+ | * [[http:// | ||