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 | ||
user:zeman:interset:to-do [2007/10/01 17:11] zeman |
user:zeman:interset:to-do [2008/03/31 15:00] zeman Values of feature tagset normalized in all drivers. |
||
---|---|---|---|
Line 3: | Line 3: | ||
===== Infrastructure ===== | ===== Infrastructure ===== | ||
- | ==== Strict encoding ==== | + | |
- | + | * Clean up '' | |
- | The encoder should be able to work in two modes: | + | |
- | | + | |
- | * Strictly keeping | + | |
- | + | ||
- | Although this requirement has been known since the very beginning of this work, no driver so far implements strict encoding. It would almost double the work needed | + | |
- | + | ||
- | The process of strict encoding could be automated using the list() function of the driver. A service function could decode every possible tag (as listed by list()) | + | |
- | + | ||
- | The graph would not be constructed in full. Such a process would be too costly. Instead, every feature would be given a numeric priority, and there would be a total ordering of the features according to their priorities. The encoding process would always consider the features | + | |
- | + | ||
- | How will the strict encoding look in practice? A service function will read the feature tree and a set of feature values to be encoded. The function will traverse the tree and adjust the feature values to match a tag from the list. Then the normal encode() function of the driver will be called. A prerequisite is that the driver keeps the condition encode(decode(x))=x. This has not been tested so far but the drivers indeed should conform to it. | + | |
- | + | ||
- | 2 druhy striktního kódování: | + | |
- | * Opravdu striktní zajistí, že na výstupu se neobjeví značka, která není na seznamu. | + | |
- | * Mírnější přístup tohle nepožaduje, | + | |
- | + | ||
- | ==== Service functions ==== | + | |
- | + | ||
- | * Check whether decode() sets only known features. | + | |
- | * Check whether decode() sets features only to known values. | + | |
- | * Unset features: | + | |
- | * Return list of unset features. | + | |
- | * Fill one or all unset features with default values. | + | |
- | * Fill one or all unset features with arrays of all possible | + | |
* Query feature value: a shared function detects array and if it is array, searches it for a given value. | * Query feature value: a shared function detects array and if it is array, searches it for a given value. | ||
- | * Společná funkce: před encode(): máme-li list(), | + | * New test in driver-test.pl: does a driver decode into arrays? If so, what features are affected? If not, is it capable of encoding arrays |
+ | * New test in driver-test.pl: how many tags / what proportion of the tagset are decoded using the '' | ||
+ | * Extend the '' | ||
===== Features and values ===== | ===== Features and values ===== | ||
- | * Přejmenovat compdeg = norm na pos (pozitiv). | + | * Udělat pořádek v zájmenech, determinátorech, |
- | * Přejmenovat number=plu na plur? | + | * Přece jen přidat kategorie zájmen? Dánové mají: demonstrative, |
- | * Sloučit vlastnosti verbform a mood. | + | * Členy a zájmena by se možná vůbec měly rozlišit jinak. Na nejvyšší úrovni by se rozlišovala substantivnost/ |
- | * Udělat z poss opět jenom subpos? | + | |
- | | + | * Jemněji roztřídit interpunkci. Dánové mají vlastní interpunkci, |
- | * Ze subpos=clit udělat samostatnou vlastnost, aby se usnadnil dotaz, zda je zájmeno osobní. | + | * Classification of coordinative conjunctions: |
- | * Udělat tu dotazovací funkci (viz výše)! Kromě technické práce s poli ještě přidat hierarchii hodnot: když se někdo ptá na " | + | |
- | * Obdobně pro funkci decode() udělat servisní funkci, která nabídne hodnoty pro nevyplněné vlastnosti na základě jiných vyplněných (např. ukazovací zájmeno implikuje určitost a atributivnost). Musí se to ale pořádně promyslet | + | |
* Udělat přehled častých prvků, které nemají vlastní slovní druh. Např. jak se řeší částice označující infinitiv. | * Udělat přehled častých prvků, které nemají vlastní slovní druh. Např. jak se řeší částice označující infinitiv. | ||
- | * Jemněji roztřídit interpunkci. Dánové mají vlastní interpunkci, potom symboly (+, $), potom podivnosti, které my ani za interpunkci nepovažujeme. " | + | * Projít jednotlivé sady a udělat jakýsi globální přehled třídění malých slovních druhů, zejména částic, předložek a spojek, možná samostatně i interpunkce. (Teď nemluvíme o zájmenech a členech, ty jsou samostatnou kapitolou.) |
- | * Předělat binární vlastnosti na hodnoty | + | * Vymyslet koncepci pro stažené (contracted) tvary, kde se do jednoho slova dostaly dva různé slovní druhy. Zatím to na různých místech |
- | * Přejmenovat compdeg | + | |
+ | Things to think about (not sure that these changes should really be made): | ||
+ | |||
+ | * Sloučit vlastnosti '' | ||
* Příčestí by mělo mít vlastní slovní druh. S tím, že některé sady ho řadí pod sloveso a jiné pod přídavné jméno, jsou jenom problémy. | * Příčestí by mělo mít vlastní slovní druh. S tím, že některé sady ho řadí pod sloveso a jiné pod přídavné jméno, jsou jenom problémy. | ||
- | * Subjektform a objektform u švédských | + | * Pokud se osvědčí nové třídění |
- | * Členy | + | * Předělat binární vlastnosti na hodnoty " |
+ | * Přejmenovat number = plu na plur? | ||
+ | * Zrušit '' | ||
===== Specific drivers ===== | ===== Specific drivers ===== | ||
* cs::pdt - reimplement "type L" pronouns as collective pronouns (introduced due to Bulgarian) | * cs::pdt - reimplement "type L" pronouns as collective pronouns (introduced due to Bulgarian) | ||
- | |||
- | ===== Paper notes ===== | ||
- | |||
- | ==== Time needed for tag set conversion ==== | ||
- | |||
- | Poznámky o časové náročnosti konverze morfologických značek | ||
- | ----------------------------------------------------------- | ||
- | |||
- | Ruský treebank (nejen značky, ale vůbec převod formátu): | ||
- | 12:36 | ||
- | |||
- | Arabské značky (Otovy i Buckwalterovy, | ||
- | 4:45+1+1:40 = 7:25 | ||
- | |||
- | České značky PDT (přes 4000 značek; jádro Intersetu vzniklo jako vedlejší produkt, když jsem dělal tohle) | ||
- | asi 2 dny, tedy dejme tomu 18 hodin | ||
- | |||
- | Dánské značky DDT/Parole (144 značek s košatým popisem) | ||
- | asi 7 hodin | ||
- | |||
- | Švédské značky Mamba (48 značek) | ||
- | asi 3 hodiny | ||
- | |||
- | Penn Treebank (36 značek) | ||
- | asi 3 hodiny, ale tady jsem to ještě neměřil, takže to je jen hrubý zpětný odhad | ||
- | |||
- | Hajičovy švédské značky | ||
- | 0:32 - tady zjevně chybí úplná statistika | ||
- | |||
- | Arabské značky CoNLL | ||
- | 4: | ||
- | |||
- | České značky PDT (CoNLL verze? Nebo to jsou jen opravy, když jsem začal ovladače testovat?) | ||
- | 1: | ||
- | |||
- | Bulharské značky CoNLL | ||
- | 0: | ||
- | (ale u bulharštiny jsem se dost natrápil s jevy, které do té doby nebyly v intersetu podchycené) | ||
- | |||
- | Anglické značky CoNLL | ||
- | 0:48 - možná tady chybí statistika, ale možná taky ne, protože stačilo upravit existující ovladač Penn Treebanku, ne? | ||
- | |||
- | Žádné z výše uvedených převodů (tedy vše napsané před říjnem 2007) ještě neměly k dispozici chytré funkce pro nahrazování nepovolených hodnot. | ||