Hlavní navigace

Zmatení (programovacích) jazyků

Apple a jazyk

Cocoa v OS X 10.7 (Lion) a iOS 5 obsahuje velice zajímavou třídu: NSLinguisticTagger. Co to je tagger? Agentivní substantivum od to tag, kteréžto sloveso je odvozené od substantiva tag, jež znamená „značka“. V kontextu zpracování přirozeného jazyka můžeme méně krkolomně napsat, že se jedná o komponentu, jež morfologicky analyzuje (a zpravidla zjednoznačňuje) text.

Pokrok nezastavíš...

Před několika lety měl můj hlavní počítač procesor G4 (1,5 GHz) a 1 GB paměti (to jsem si ovšem musel připlatit). Protože ještě stále funguje (občas používám jeho DVD mechaniku, na notebooku se odebrala do věčných lovišť), pustil jsem nedávno jen tak z hecu jeden program v C++ na tomto počítači a na moderním ARM.
5. 4. 2012 10:41 |

Jak Microsoft (ne)opravuje bugy

Když vyšlo na podzim první dev preview Windows 8, docela mě bavilo „hrabat“ se ve WinRT, jelikož to bylo něco nového. Podobnost C++/CX s ObjC a Cocoa (jistě „čistě náhodná“) sváděla k porovnání různých koceptů. Protože ve WinRT má Microsoft kvůli návaznosti na jiné jazyky (a zejména .NET, tedy CLR) tzv. „projekce“, nelze lambda výrazy používat přímo, ale zabalují se do „delegátů“. Takový delegát se chová stejně jako C++/CX komponenta, tedy zejména má čítač referencí…
5. 4. 2012 9:54 |

Chart parsing a NP-úplnost

Už jsem zde stručně představil unifikační gramatiky. Také jsem uvedl, že algoritmus pro parsing podle takové gramatiky je NP-úplný (tj. v nejhorším případě zřejmě exponenciální). Typická unifikační gramatika má generativní sílu větší než bezkontextové gramatiky a dokonce větší než mírně kontextové (angl. mildly context-sensitive), tzn. že délka slova při aplikaci pravidel roste více než lineárně (např. exponenciálně).

Windows (Phone) 8

Britský The Guardian nedávno uveřejnil článek, ve kterém nabádá Microsoft, aby se pro své budoucí tablety vykašlal na plnohodnotný systém a dal tam jednoduchý OS z Windows Phone. Argumentace je zhruba taková, že Apple udělal to samé a iPad je zdaleka nejpopulárnějším tabletem. Jak je to s těmi procesory
25. 3. 2012 19:27 (aktualizováno) |

Co nového v objektivním světě

Pokud vám to při čtení nadpisu nedošlo, tento článek pojednává o Objective-C, konkrétně o jeho nejnovější verzi, jak ji implementují nové LLVM a clang. ObjC se v posledních letech rychle vyvíjí z okrajové záležitosti v moderní jazyk a jako zatím poslední vylepšení nám vývojáři nabídli například nové literály pro práci se základními datovými strukturami.
19. 3. 2012 15:01

Statistický strojový překlad

Nejlepší systémy pro automatický překlad jsou založeny na pravidlech (většinou na unifikační gramatice), nicméně vývoj takového systému je značně náročný na čas a především znalosti. Jako alternativa se v posledních dvou dekádách prosazují statistické metody zpracování přirozeného jazyka včetně strojového překladu.

Jak na unifikační gramatiku

Unifikační gramatiky jsou skupinou (většinou) bezkontextových gramatik rozšířených o datové struktury (typicky struktury rysů), nad nimiž je definována operace unifikace. Jejich důležitou vlastností je, že byť obsahují pouze bezkontextová pravidla (typu X→α), jejich formální síla je větší než u běžných bezkontextových gramatik. Jinými slovy, generují i jazyky, které nejsou bezkontextové (to ovšem nutně neznamená, že generují všechny kontextové jazyky).
28. 2. 2012 9:50 (aktualizováno) | Zpracování přirozeného jazyka

Přirozený jazyk a bezkontextová syntax

Zpracování přirozeného jazyka patří k nejsložitějším algoritmickým úlohám. V přirozených jazycích se střetává tendence vyjádřit co nejvíce co nejpřesněji s ekonomickým principem, tedy tendencí slovní vyjádření redukovat (neformálně můžeme mluvit o lenosti). Lidské jazyky jsou proto (narozdíl od formálních) víceznačné na všech úrovních, které jazykověda rozlišuje (tvarosloví, syntax, sémantika), čehož důsledkem jsou problémy s formálním popisem jazyka a jeho strojovým zpracováním.

Všudypřítomná harmonie

K nejrozšířenějším jazykům dneška patří JavaScript (JS). Navzdory svému jméno se od Javy dost liší, sdílí s ní v podstatě jen céčkovou syntax. Byl kodifikován pod názvem ECMAScript a nedávno jsme se dočkali verze 5,1. Verze 5,1 je jen mírným pokrokem, daleko větším měl být JS 4,0, jejž ovšem Microsoft jako normu zablokoval (nelíbilo se mu, že by se Adobe prosadilo se svým ActionScriptem)…
11. 1. 2012 18:15 | Programovací jazyky |