Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tok skilgreiningar #2

Closed
sigurdurb opened this issue Jul 21, 2020 · 3 comments
Closed

Tok skilgreiningar #2

sigurdurb opened this issue Jul 21, 2020 · 3 comments

Comments

@sigurdurb
Copy link

Hæ,
Ég var að spá í hvaða tilfellum er þessi listi ekki tómur:

Ég er reyndar að vinna með þetta án þess að nota gen fallið heldur vinnur bara með textan beint sem streng.

Ég var líka að prenta út TOK.END og fæ frozenset({10000, 12001, 10002, 11002}), í hvaða charactera er verið að vísa hérna?
Ef ég geri t.d. print(chr(10000)) fæ ég bara mjög skrítin tákn.

@vthorsteinsson
Copy link
Member

vthorsteinsson commented Jul 21, 2020

Þetta er aðallega "allur er varinn góður" forritun (defensive programming); undir venjulegum kringumstæðum endar tókalistinn alltaf á tóka sem er í TOK.END menginu (TOK.S_END, TOK.P_END, TOK.X_END, TOK.S_SPLIT, sbr. tokenizer.py í Tokenizer pakkanum) og þá er curr_sent = [] í lokin.

Tok.kind svæðið inniheldur ekki stafi heldur heiltölu (integer) sem gefur til kynna hvers konar tóka um er að ræða. Gildin eru m.a. TOK.WORD (=6) og TOK.S_END (=11002). Þessar tölur eru valdar nánast af handahófi og hafa enga sérstaka merkingu. Sjálfur textinn sem tókinn inniheldur er í Tok.txt. Þetta er nánar útskýrt í README í Tokenizer pakkanum.

@sigurdurb
Copy link
Author

Sæll, Já einmitt. Ég var aðeins búinn að skoða kóðann í tokenizer. Þannig þetta er einskonar möppun frá tölu í tóka? Þú nefndir Tok.txt, ég er ekki að finna það á git. Er það í tokenizer pakkanum?

@vthorsteinsson
Copy link
Member

Tjah, strangt til tekið er GreynirCorrect að beita smá Python trixi: Hann tekur inn Tok hluti, þ.e. tóka sem koma úr Tokenizer pakkanum og eru skilgreindir sem NamedTuple("kind", "txt", "val"), en hann skilar út CorrectToken hlutum, þar sem CorrectToken er klasi sem er skilgreindur í errtokenizer.py (lína 160). CorrectToken hegðar sér hins vegar alveg eins og Tok ("duck typing"). Þannig að ef þú ert með tóka t í höndunum geturðu skoðað t.kind til að sjá hvers konar tóki þetta er (t.d. TOK.WORD), t.txt til að fá texta tókans, og t.val til að fá ýmsar aukaupplýsingar um tókann. Þetta er allt skjalað í README skránni í Tokenizer, sem ég hlekkjaði á hér fyrir ofan.

@sigurdurb sigurdurb changed the title Spurningar Tok skilgreiningar Sep 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants