olski.parse.czytanie¶
Czytanie i jego kawałki: pozycja lasu, liść i węzeł.
Typy, którymi mówią do siebie warstwy rozbioru i którymi parser odpowiada na zewnątrz.
Co czyni dwa wyprowadzenia jednym czytaniem, rozstrzyga Node.signature.
Tree = Leaf | Node
module-attribute
¶
Cykl
¶
Bases: Exception
Pozycja stoi sama pod sobą, więc czytań jest nieskończenie wiele.
Source code in olski/parse/czytanie.py
15 16 | |
Pozycja
dataclass
¶
Miejsce w tablicy: co się wyprowadza i skąd dokąd.
Pakowanie polega na tym, że dwa wyprowadzenia jednego kształtu dostają jedną pozycję. Las rośnie wtedy z długością zdania, a nie z liczbą czytań.
Etykieta i rozpiętość to dokładnie tyle, ile odróżnia jedno czytanie od drugiego,
a Node.signature wywodzi dlaczego;
pozycja o jeden składnik bogatsza liczyłaby wyprowadzenia zamiast czytań.
Ile kosztuje rozdzielanie pozycji po cechach, mierzy
docs/parsowanie.md#co-się-pakuje-rozstrzyga-tożsamość-czytania.
Liść etykiety nie ma, bo czytaniem liścia jest sama rozpiętość: dwa czytania jednej formy są jednym liściem.
Source code in olski/parse/czytanie.py
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | |
Leaf
dataclass
¶
Forma pod terminalem i czytania, którymi ją ten kształt bierze.
Source code in olski/parse/czytanie.py
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | |
segment
instance-attribute
¶
odczytania
instance-attribute
¶
reading
property
¶
Pierwsze z odczytań licencjonujących, dla tego, kto pyta o jedno.
Kto pyta o lemat, tym wyborem wiązać się nie powinien:
olski/skład/rozbiór.py pyta o lemat krawędź grafu i mówi, po co.
span
property
¶
__init__(segment, odczytania)
¶
signature()
¶
Liść jest swoją rozpiętością i niczym więcej.
Część mowy zeszła stąd rozmyślnie i nie ma tu wracać przez przeoczenie;
co ją zdjęło, mówi Node.signature.
Source code in olski/parse/czytanie.py
73 74 75 76 77 78 79 | |
forms()
¶
Source code in olski/parse/czytanie.py
81 82 | |
liść_głowy()
¶
Głową słowa jest ono samo, i tu schodzenie po głowach się kończy.
Source code in olski/parse/czytanie.py
84 85 86 | |
Node
dataclass
¶
Source code in olski/parse/czytanie.py
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | |
label
instance-attribute
¶
children
instance-attribute
¶
span
instance-attribute
¶
głowa
instance-attribute
¶
koszty
instance-attribute
¶
__init__(label, children, span, głowa, koszty)
¶
signature()
¶
Co czyni dwa czytania jednym czytaniem.
Czytanie jest swoim kształtem i niczym więcej: role stoją w etykietach
węzłów, przyłączenie w rozpiętościach, a wszystko, o co olski pyta, jest
pytaniem o drzewo. Wyłączone rozmyślnie: wartości cech, bo zgodność
wymusiła już unifikacja; lematy, bo polskie formy są homonimiczne
wszędzie i liczone jako dwa odrzuciłyby prawie całą polszczyznę; części
mowy, bo tam, gdzie zmieniają strukturę, różni wyprowadzenia już
kształt — do jako przyimek i jako nuta dalej są dwoma czytaniami.
Ostatnią z tych trzech wywodzi docs/subset.md: co ją zdjęło, ile to kupuje nad bankiem drzew i czego było warunkiem.
Pozycja lasu niesie dokładnie ten kształt, więc dwa drzewa wyliczone z lasu mają dwie różne sygnatury i nie ma tu czego odsiewać.
Wyliczone drzewo niesie za to więcej niż sygnaturę,
bo na liściach stoją czytania, a tych kształt nie liczy.
Klasa czytania zbiera wyprowadzenia różne samą morfologią,
więc nie rozstrzyga, które z nich w drzewie stoi;
rozstrzyga, że czytanie spoza niej jest w nim błędem,
i tyle drzewo dostaje (Las._wybierz).
Source code in olski/parse/czytanie.py
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | |
forms()
¶
Source code in olski/parse/czytanie.py
139 140 | |
liść_głowy()
¶
Liść głowy tego konstytuenta: jedno słowo, którym się go nazywa.
Schodzi po głowach aż do liścia,
bo głową grupy jest słowo, a nie podgrupa:
gospodarzem przyłączenia jest koszt, a nie koszt szynki.
Liściem, a nie samą formą, bo pytający pytają o dwie różne rzeczy o tym
samym słowie: streszczenie o formę (forma_głowy), a wiersz żądania
o odczytania, którymi ono w tym kształcie stoi (olski/werdykt.py).
Source code in olski/parse/czytanie.py
142 143 144 145 146 147 148 149 150 151 152 153 | |
forma_głowy()
¶
Source code in olski/parse/czytanie.py
155 156 | |
find(label, skip=())
¶
Every node with this label, this one included, outermost first.
A subtree labelled with one of skip is named where it stands and not
entered, which is how the summary asks for the roles of the clause it
summarises rather than for the roles of a clause subordinate to it
(Deklaracja.podrzędne). Named, because a subordinate clause is
sometimes a role itself: an adverbial clause is one of the roles readings
differ in, and its inside is a separate sentence all the same.
The coverage check passes nothing, because the gold tree marks a role
wherever a clause has one.
Source code in olski/parse/czytanie.py
158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | |