FAQ === **Adobe Connect, GoPost, etc.** - Where are the recorded meetings? All meetings are linked from the course website's schedule page. I'll post them, usually by the morning following class. - So, should I use GoPost, e-mail the professor, or use the FAQ? Use all three: Go to the FAQ first If you need clarification, use GoPost. If you still don't get a good answer, e-mail the professor or the TA. **Patas, Condor** - Why can't I execute my Python script using ``./mycode.py``? It needs to be an executable: ``chmod u+x mycode.py`` - How do I package my homework for submitting on CollectIt? Please tar your assignment. To tar from the directory that your work is in: ``$ tar -cvf hw2.tar *`` which produces ``hw2.tar``. Please turn in this file. - So what's the bottom line w. the cmd file for the howeworks? Create a cmd file that we will run. Call it ``condor.cmd`` for each assignment. - Why bother with Condor? The Condor sy- distributes the computation load among several processors. For small tasks, it really doesn't matter, but when the cluster is really busy and you have a processor intensive job, the use of Condor makes best use of resources. See the CLMA Wiki for more info. - What's the difference between ``condor-exec`` and ``condor_submit`` ? When do I need to use them? - Use ``condor-exec`` hen testing your code, esp code that might take a long time to run. For condor-exec, you don't need a cmd file, as it's auto created for you. So, do this: ``condor-exec ./test.py``, where test.py contains your main Python code with a shebang line at the top:``#!/usr/local/bin/python2.5`` - We'll use ``condor_submit`` to run homeworks. You need to create a ``cmd`` file which gets executed by ``condor_submit`` like this: ``condor_submit mycmd.cmd`` That way, you can have more flexibility in how your code is structured and run, while allowing us the ability to run everyone's homework the same way. - When do I just use ``python mycode.py`` ? For testing of small Python scripts, just use ``python mycode.py`` - How do I manage (and remove) my jobs on Condor? You can look at the queue by executing ``condor_q`` and remove jobs by ``condor_rm #id`` where you can find \#id from the queue output. A job is held if the status ("ST") is ""H". **Grammars and Parsing** - What are all those weird symbols in the CNF grammar, ``NP | < DT-NN >`` ? They are delimiters indicating 1) what the parent category may be and 2) the various child categories (e.g., the head child). See ??? - My parser's precision/recall measures are abysmal. Is this normal? If you're using a small training set, yes. The more training data you use, the better your results will be. - How do I improve a parser's performance in terms of precision/recall? - Try tokenizing as close to your test data as possible, e.g., see ``tokenizer.sed`` in the dropbox. - Use a good POS tagger, e.g., an hmm tagger trained on the same training corpus as your parser. - Throw out most function tags (e.g., NP-LOC), but consider keeping NP-TMP. - If using ``evalb``, don't bother parsing sentences longer than 40 tokens: ``evalb`` doesn't score these anyway. - How do I improve the runtime of a parser? - Divide your POS rules from Nonterminal rules in two separate structures. You don't need to loop over POS rules (e.g., ``NN --> efficiency``) when you know you're looking for a Nonterminal. - Limit the number of entries in each cell (if using a chart algorithm): e.g., try setting a probability threshold **k** (throw out entries w. a probability less than **k**). - Use a smaller grammar, e.g., by manipulating Markovization factors when you transform to CNF - What is ``evalb``? - **evalb** is the de facto standard evaluation application used on all kinds of parsers. It implements the PARSEVAL metrics. It is highly configurable. - Are Bracketing Recall and Bracketing Precision in the evalb output the same as the Labelled Recall and Labelled Precision discussed in lecture? - evalb incorporates the later assumption: ie node labels matter. So, bracketing recall/precision=labeled recall/precision, but they didn't say this in the README file. The tagging accuracy is the same as POS tagging accuracy. **Computational Semantics** - Where can I see an example of lambda calculus? `Lambda calculus demo `_ - What's with the order of arguments in a formula like: ``see(Jane, Mike)``? In general, there are two ways to represent the verb *see*: 1. In a relational style of predication (what most of you are used to): ``see(Jane,Mike)`` 2. In a functional style of predication: ``((see Mike) Jane)`` or shorthand ``(see Mike Jane)``