Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
user:zeman:morpho-challenge-2008 [2008/07/31 23:03] zeman Pomlčky oddělují morfémy. |
user:zeman:morpho-challenge-2008 [2008/08/04 13:07] (current) zeman Daür, zürst. |
||
|---|---|---|---|
| Line 144: | Line 144: | ||
| end</ | end</ | ||
| - | ===== Zbývá udělat | + | ===== Záznamy pokusů |
| - | * Vyzkoušet skórování. | + | ==== Převrácená slova a předpony |
| - | * Pustit celý algoritmus na převrácená slova a získat | + | |
| - | * Zkusit rozpoznat složená slova, resp. složené kmeny. Pouze jednoduchý přístup, snažit se najít uvnitř kmenu jiný existující kmen tak, aby to, co zbyde, byl také existující kmen nebo složenina. | + | |
| - | * Vymyslet způsob, jak využít četnosti slovních tvarů, které jsme dostali s& | + | |
| - | * Odeslat výsledky Mikkovi. | + | |
| + | První pokus se ještě dostal do oficiálního vyhodnocení, | ||
| + | ==== Pomlčka odděluje morfémy ==== | ||
| + | Při segmentaci prostě v každém rozkladu navíc nahradím pomlčky mezerami, čímž se slovo může rozpadnout na větší počet morfémů (pokud pomlčka nebyla na začátku). V angličtině to zvedlo F o 2 body. | ||
| + | ==== Nejpřísnější segmentace ==== | ||
| + | Museli jsme vidět kmen i koncovku ve stejném vzoru (tedy buď přímo v trénovacích datech, nebo se koncovka ke kmeni dostala slučováním podmnožin s nadmnožinami). | ||
| + | Dvě třetiny vzorů nepřežijí filtrování, | ||
| - | ===== Postřehy ===== | + | ==== Mazání vzorů, které mají více koncovek než kmenů, a přepracovaný algoritmus slévání podmnožin |
| - | Zkusit nejpřísnější segmentaci. Slovo se rozdělí pouze v případě, že kmen a koncovka byly viděny //spolu.// | + | Vzor pro slova abrupt, abruptly, abruptness nepřežil, protože |
| - | Předpony, zdá se, fungují, ale na rozdíl | + | === Nový algoritmus pro prořezávání podmnožin === |
| + | |||
| + | Starý: | ||
| + | 1. Množiny procházet od největších po nejmenší (využíváme tím toho, že během procházení | ||
| + | 2. Pro každou množinu procházet nadmnožiny. V nejhorším případě všechny, ale pokud najdeme alespoň jednu nadmnožinu velikosti n, hledáme už jen další nadmnožiny stejné velikosti a neprocházíme větší množiny. | ||
| + | 3. Zjištění, | ||
| + | |||
| + | Složitost algoritmu je v nejhorším případě O((n**2)*k), | ||
| + | |||
| + | Nový dynamický: | ||
| + | 1. Projít všechny množiny. | ||
| + | 2. Pro každou zkoumat podmnožiny, | ||
| + | 3. Projít množiny podruhé, teď už od největších po nejmenší. Pro každou množinu procházíme do šířky strom jejích nadmnožin (máme na ně odkazy). U nadmnožin se díváme, zda o nich máme jen pomocný záznam, nebo zda jsme něco takového skutečně viděli v datech. Za " | ||
| + | |||
| + | Složitost algoritmu: Vybudování grafu nadmnožin stojí O(n*k) kroků. Složitost procházení stromu je těžké odhadnout, protože nevíme, kolika způsoby | ||
| + | |||
| + | Počítadlo zjistilo, že pro 69877 anglických vzorů graf množin obsahoval 455633 množin. | ||
| + | Pozor, při procházení zdola nahoru zřejmě také mnohokrát procházím tímtéž místem! | ||
| + | Po zabránění tomuto opakování mi počítadlo zjistilo, že pro 69877 anglických vzorů jsem celkem zkoušel 202302 nadmnožin. | ||
| + | |||
| + | ===== Zbývá udělat ===== | ||
| + | |||
| + | * Pustit celý algoritmus na převrácená slova a získat předpony. | ||
| + | * Zkusit rozpoznat složená slova, resp. složené kmeny. Pouze jednoduchý přístup, snažit se najít uvnitř kmenu jiný existující kmen tak, aby to, co zbyde, byl také existující kmen nebo složenina. | ||
| + | * Vymyslet způsob, jak využít četnosti slovních tvarů, které jsme dostali s& | ||
| + | |||
| + | |||
| + | |||
| + | ===== Postřehy ===== | ||
| + | |||
| + | Pravidlová metoda pro předpony funguje mnohem lépe než ta reverzní. Obě metody se ale také podstatně liší způsobem použití naučených předpon při segmentaci. Chtělo by to oba způsoby prohodit a ověřit, zda rozdíl v úspěšnosti netkví ve skutečnosti zde. Kromě toho upravit reverzní metodu tak, aby společné písmeno neputovalo | ||
| Jednopísmenné předpony jsou problém. Nemůžu je úplně zakázat (české //o-, u-//), ale ve výstupu se mi nezdravě množí. | Jednopísmenné předpony jsou problém. Nemůžu je úplně zakázat (české //o-, u-//), ale ve výstupu se mi nezdravě množí. | ||
| Segmentaci dělám hladově, i když by to chtělo chart parser. Problém: máme 2 seznamy kmenů (jeden zbytky po předponách, | Segmentaci dělám hladově, i když by to chtělo chart parser. Problém: máme 2 seznamy kmenů (jeden zbytky po předponách, | ||
| - | |||
| - | Algoritmus 3 (předpony + kmeny + přípony) nedělá to, co má. Jaktože nepoznal vzor //abrupt - abruptly - abruptness//, | ||
| Četnost koncovek: u kolika slov (typů i výskytů) jsme viděli danou koncovku? Méně časté koncovky by měly mít ztížené uplatnění při segmentaci. Zatím ale nevím, jak jim ho ztížit jinak, než je úplně zakázat. | Četnost koncovek: u kolika slov (typů i výskytů) jsme viděli danou koncovku? Méně časté koncovky by měly mít ztížené uplatnění při segmentaci. Zatím ale nevím, jak jim ho ztížit jinak, než je úplně zakázat. | ||
| Vzhledem ke způsobu vyhodnocení, | Vzhledem ke způsobu vyhodnocení, | ||
| - | |||
| - | Jestliže slovo obsahuje pomlčku, je to téměř jistá hranice morfémů. Zkusil jsem při vypisování rozkladů nahradit pomlčky mezerami a v angličtině mi F stouplo asi o 2 body. | ||
| Jak mám poznat podmnožinu, | Jak mám poznat podmnožinu, | ||
| - | Třetina slov v angličtině neprojde filtrováním vzorů. Na vstupu mám 385 tisíc slov, na výstupu 122 tisíc segmentací. (Ve skutečnosti jsem jich asi odfiltroval víc, protože na výstupu navíc mohou být i taková slova, která jsem vůbec neviděl. Můžou | + | V němčině je problém s kódováním. Postupně zjišťuju, že zobrazení, které použili |
