26. března 2010

Jakým způsobem vyřešit vyhledávání s časovou lokalizací na internetu

Článek byl napsán pro blog předmětu Transformace SAAS: http://obchodnimodely.blogspot.com

V naší době internetové daleko více než kdykoliv předtím platí pravidlo, že není důležité mít všechny znalosti, ale vědět kde konkrétní věc najít. S množstvím rostoucích dat, roste i potřeba důležité informace třídit. Velmi zajímavou oblastí je třídění dle místního nebo časového hlediska. Pro časové hledisko nastávají dva problémy- jak vyhledat v již zveřejněných záznamech a s tím souvisí aplikace řadícího algoritmu. Druhým problémem je jak vyřešit zapsání časových informací k danému obsahu.

Vyhledávání


Internetové zdroje jsou plné časových záznamů, které se liší jak země od země či systém od systému. O zpětnou konverzi na svůj vnitřní datový formát se snaží velké vyhledávače, aby mohli s těmito údaji dále pracovat. Google takto indexuje nejen webové stránky (daří se mu i v případě českých variant), ale také např. naskenované články ze starších novin. Díky těmto meta-informacím o stránce, je může třídit dle uživatelských kritérií (např. vybrat článek z definovaného období)



Link na dotaz IBM uvedeného na obrázku výše



Jediným problémem je fakt, že uživatel musí přímo konkrétně definovat období, ze kterého požaduje dané výsledky. Vyhledávač stále chápe slova pro určení časového období (tj. včera, dnes a zítra nebo v sobotu večer a v neděli ráno) jen jako běžné fráze a tak s nima pracuje. Na prvních jsou nejlépe optimalizované výsledky na daná slova. Ideální případem je stav kdy frázi dnes identifikuje jako dnešní datum (= 26.3.2010) a dle toho filtruje výsledky vyhledávání z dalších klíčových slov.

Zapisování informací o obsahu k datu


Práci, by všem vyhledávacím robotům a tedy i koncovým uživatelům, ušetřilo masové použití mikroformátu. Mikroformáty jsou přesně definované vlastnosti html tagů, tak aby jim rozuměli hlavně roboti (či vyhledávací crawlery), a ohraničují data viditelná uživateli.

Např. tento segment kódu informuje o probíhající akci a datumu. (mikroformát: hCalendar)

<div class="vevent">
<p>Termín<span class="summary">zkoušky z předmětu Transformace SAAS</span> je naplánován na
<span class="dtstart">2010-05-13T11:00</span>.
</p>
</div> 


Takovéto označování dat pomoci meta-informací přináší výhody i pro uživatele s možnosti automatizovaného zpracování tohoto obsahu (např. přidání položky do kalendáře).

O výhodách použití mikroformátů si je vědom Google a ve svém blogovacím systému Blogger (na kterém běží i tento blog) je poctivě používá. U každého napsaného článku je datum vydání článku zapsáno např. takto.

<abbr class='published' title='2010-03-16T21:17:00+01:00'>21:17</abbr>

To již nyní umožňuje nechat si vyfiltrovat články publikované (např. zde najdete články na anglicky psaných blozích, publikovaných během posledních 12 hodin na téma SAAS)


Další servery taktéž přidávají sémantickou informaci. Facebook jakžto uzavřená platforma používá vlastní, i když stále snadno identifikovatelný formát. Twitter naopak otevřeně podporuje možnost přístupu jiným systémům (přes API)

Facebook
<abbr class="timestamp" title="Sat, 20 Mar 2010 09:58:57 -0700">15 minutes ago</abbr>

Twitter
<span class="published" title="2010-03-20T10:07:06+00:00">about 7 hours ago</span>


Řazení výsledků


S rozvojem mikroblogovacích systémů (Twitter, později Buzz a můžeme zde zařadit i Facebook) se klade důraz na časovou a místní meta-informaci. Jakmile tedy uživatel něco publikuje, je cílem systémů tuto zprávu zaregistrovat, zpracovat a poskytnout. Vzniká pojem real-time search, který nečeká na vytváření zpětných odkazů a budování např. PageRanku. Cílem je zachytit a nejrychleji zobrazit. Jenže nastává problém v tom, která informace je důležitějši.


V dosavadním modelu řazení výsledků vyhledávání se zohledňovala důležitosti pro uživatele. Ta je často vyjádřena mnoha neveřejnými faktory (mluví se zhruba o stovce), mezi nejznámější patří - množství klíčových slov, jejich umístění a semantické označení, počet odkazů vedoucí na stránu a ze stránky, počet návštěv daného webu atd. Pokud se všechna tato data vloží do matematické formule, vyjde jedno konkrétní číslo vyjadřující kvalitu stránky.


V modelu novém je ve chvíli položení dotazů, mnoho odpovědí. Ty jsou řazeny pouze podle jednoho kritéria - datum publikování, s tím že nejrelevantnější příspěvky jsou nejvýše.



Závěr 
Již publikované texty se průběžně zpětně doplňuji o meta-informaci datumu a času, tak aby mohli uživateli poskytnout větší svobodu při filtrování výsledků. Důvodem je přidaná hodnot pro uživatele.


Do budoucna širší používání mikroformátů, umožní poskytování kvalitnějších výsledků, se kterýma se dá snadněji pracovat. Jakmile toto bude reálně funkční, zbývá kousek k dodefinování algoritmů, aby rozuměli slovům časového významu (dnes, zítra, atd).


Na závěr bych ukázal zajímavý koncept pro vizuální vyhledávání, řešící jako lokační tak časovou filtraci [1]. Na mapě vybere oblast (vyřešení lokaĺizačního filtru) a v panelu vybere období (vyřešení časového filtru). Dále se dodefinuje oblast zájmu (fotky, videa, události, zprávy) a konečně i vyhledávací dotaz.






Otázka na závěr: Budeme k informacím vždy přistupovat pouze textově přes jedno vyhledávací pole ?


Zdroj:
[1] FAAS, Michel: Virtual Moment for Google Maps/Earth
http://www.slideshare.net/MichelFaas/virtual-moment-presentation



Zajímá tě více?

16. března 2010

Zjistěte reálnou vzdálenost dvou míst pomocí funkce [Google Spreadsheet]


Je mi potěšením že Vám tímto mohu představit první českou funkci do Google Spreadsheetu. (možná i první středoevropskou až evropskou, v tuto chvíli (16-03-2010 21:04) je celkem osm 3rd parties scripts od 7 autorů - dle jmen odhadu USA, China, možná UK)

Pojďme se podívat co umí. Její použití je prosté (a "na") *
Do funkce =getDistance(A,B) zadáte dvě místa, z nichž se vypočítá vzdálenost
  • místa zadávejte do uvozovek (můžete používat i adresování např. G26)
  • vzdálenost se vypočítá na základě tras z Google Maps (takže žádné matematické hříčky se souřadnicemi - proto v nadpisu mám slovo reálnou)
  • Pokud používáte celou adresu, doporučuji zadat i název města  - Václavské náměsti 15, Praha
  • vzdálenost je v km, a počítám že jde o typ cesty autem
!(* ne-matematický vtip) **


Nyní se podíváme na návod pro nepolíbené. (jak přidat tuto funkci - a být políben)

1) Vytvořte si nový Google Spreadsheet

2) V našem případě si vytvoříme tabulku se záhlavím: Odkud - Kam - Vzdálenost, které vyplníme patřičnými daty (stačí jen první dva sloupce ;-)



2) Minulý týden Google přinesl do Spreadsheetu novinku - databázi skriptů (něco jako Macro na desktopu). Takže zvolte Vložit > Script


3) V novém okně máte na výběr z katalogu. Abychom si ušetřili čas, napište to vyhledávacího okénka "codeasi" (nebo nic neříkajíci "distance"). Po kliknutí na instalovat se Vám zobrazí vítězná hláška o úspěšné implementaci scriptu.



3) Využití je už jednoduché. Pracujete s funkcí jako s jakoukoliv jinou v Spreadsheetu. Do buňky C2 zadejte =getDistance(A2,B2).Po chvilce přemýšlení (scriptu ;) dostanete požadovan číslo vzdálenosti v km.


4) Po najetí na pravý dolní roh buňky kde máme script se kurzor změní na křížek. Pokud táhnete směrem dolu, je script kopírován, takže vzdálenosti se vztahuji k řádku.


5) Funkci jsem vytvořil cíleně/boekm jako stavební kámen pro daleko zajímavější aplikaci. Snad v jednom z příštích článků...

Pokud chcete vytvořit svoji funkci tak ji v přiloženém editoru vytvoříte, a pak necháte publikovat (poslat do adresáře). Funkce dostane speciální číslo a čekáte na schválení (které trvá cca 6dní - počítám že to dělá non-robot). Jde vlastně o JavaScript, běžící na straně serveru.

Pokud máte tipy na jiné funkce či vylepšení - pište do komentářů. Samozřejmě poskytuji i konzultace pokud potřebujete konkrétní neveřejnou funkci řešící konkrétní problem, tak emailem na codeasi@gmail.com


** matematický vtip x matematický vtip 




Zajímá tě více?

12. března 2010

Toto jsou, ehm, výsledky soutěže Vodafone Parku

Rád bych na úvod zmínil že jsem se soutěže účastnil (pro mě bohužel jen s jednou aplikací). Od vyhlášení proteklo již mnoho vody, takže snad příspěvek bude objektivním zhodnocením. Alespoň tak informují uživatele o výsledcích soutěže, když nebyla vydaná tisková zpráva (plánovaná na 10.3, tedy před dvěma dny) a výsledky byly jen zaslány emailem + oficiální web mlčí)

edit: Tisková zpráva vyšla, jen nevim proč se nezobrazila na oficiální webu Vodafone:



Pořadí aplikací vypadá takto:


  • 1. místo - Neudělujeme *
  • 2 .místo - Neudělujeme *
  • 3. místo - Neudělujeme *
  • 4. místo - Park book, Tomáš Hodbod
  • 5. místo - Počasí, Tomáš Hodbod
  • 6. místo - Kde jsem, Ondřej Machát
  • 7. místo - Svátky a narozeniny, Ondřej Králik
  • 8. místo - Zeď, Ondřej Králik
  • 9. místo - Anglicko-český slovník, Václav Tolar
  • 10.místo - MMS editor, Pavel Mikulka
Bohužel první 3 nejlepší aplikace se nenašly (jde to nenajít nejlepší aplikaci?), ale respektuji toto sdělení když bylo dopředu uvedeno v pravidlech (podmínek jsem si byl vědom, jen jsem špatně odhadl jeho naplnění). Z psychologického hlediska jde o typický příklad toho jak lidi poukazují na to že něco že něco neudělali anebo neudělají.
  • Představte si malé dítě jak přijde k mamince a řekne: Maminko, maminečko já jsem ten dort nesnědl
  • Manžel taky může sám od sebe říct své ženě: Určitě tam nejdu pít.
(tip: pokud Vám někdo do smlouvy že pokud by se něco náhodou stalo - počítejte s tim že se tak stane, protože s tímto pocitem jde do onoho projektu)

Musím pochválit smlouvu která ošetřila i možnost účasti zaměstnancům Vodafone (Ondřej Králík vyhrál hned dvě ceny, gratuluji).

Počítám že se moje aplikace (kazzeta) umístila na pozicích 11.-.20. Účastnilo se pouze 20 aplikaci, což na soutěž která běži od října (tedy 5 měsíců) docela málo. Podíval jsem se na statistiky Google jak si na tom stojí portál Vodafone Parku a musím říct že docela dobře. Vždycky mu stoupne na chvíli návštěvnost (po marketingové kampani ?), pak bohužel klesá. Jako by neuměl udržet návštěvnost. Věřím že nové aplikace pomohou.




Další kategorii byla speciální aplikace pro ženy. Počítám že ji taky nenašli protože jde o velikost ceny jako v případě 3.místa u vytvoření aplikace.

Nekvalitní aplikace kazzeta
Na úvod bych chtěl ohlédnout na to v čem jsem udělal chybu. Určitě jsem špatně cílil aplikaci. Vodafone Park je prezentován pro progresivce (lidi, kteří jdou s dobou, mají rádi technologie atd). Zde jsem přestřelil (tipoval jsem tyto lidi na uživatele last.fm + co rádi poslouchají hudbu) a místo toho využijí "zajímavější" aplikaci pro zasílání novinek z News feedu z Facebooku pomocí SMS (nejsou progresivci proti tomuto typu příjmu a nemají klienta na svém smartphone ??).

Aplikace nepracovala s Vodafone API - neviděl jsem důvod za každou cenu ho tam dávat a možná to byla chyba největší.

V hodnocení se braly úvahu tyto požadavky (které jsem asi nesplnil)



- Tržní potenciál - zda je aplikace atraktivní pro velkou část populace.
- Funkčnost - dostupnost všech funkcí, bezchybnost užívání aplikace bez výpadků a s okamžitou odezvou


- Ergonomie - účelné rozmístění a rozeznatelnost ovládacích prvků.
- Design - aplikace by měla být vizuálně atraktivní.
- Celkový dojem - subjektivní hodnocení pocitu z dané aplikace.

Celkově mě mrzí že nedošlo k posunu nápadu od podobné soutěže únoru 2008 pro iGoogle (stále se objevují a vyhrávají podobné aplikace jako je svátky, slovník, počasí.

Sláva vítězům, čest poraženým. V následujících dnech plánují aplikaci vylepšit a poučit se z vlastních chyb. Zároveň ji můžete vyzkoušet zde na blogu o tom jak hodně je špatná.Z mého pohledu jsem udělal maximum a věnoval aplikaci dost času (možná až příliš), takže přípravu a trenink jsem nezanedbal :)

Těšíme se na další soutěž a myslím že mluvím za všechny když předestřu, že klidně dopředu dáme SLEVU zadavateli v podobě 50% na možných výhrách.. :-)





Zajímá tě více?