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 |