Presentation laddar. Vänta.

Presentation laddar. Vänta.

NewsFinder! Översikt av presentationen: •Bakgrund •Idéförklaring •Programbeskrivning, funktioner •Utvärdering •Frågor.

Liknande presentationer


En presentation över ämnet: "NewsFinder! Översikt av presentationen: •Bakgrund •Idéförklaring •Programbeskrivning, funktioner •Utvärdering •Frågor."— Presentationens avskrift:

1 NewsFinder! Översikt av presentationen: •Bakgrund •Idéförklaring •Programbeskrivning, funktioner •Utvärdering •Frågor

2 Bakgrund, RSS-dokument •Internet-sida som listar nyheter •Uppbyggd som en XML-sida (1.0) •Informationen beskrivs med hjälp av taggar •RSS betyder Really Simple Syndication ! Vad är ett RSS-dokument?

3 Bakgrund, RSS-dokument •Väldokumenterat, se adressen: http://blogs.law.harvard.edu/tech/rss •Skapades 1997 av Dave Winer på mjukvaruföretaget UserLand •Har exploderat på senare tid. 5% av amerikanska internetanvändare använder RSS för att få nyheter Vad är ett RSS-dokument? forts.

4 Bakgrund, RSS-dokument Liftoff News http://liftoff.msfc.nasa.gov/ Liftoff to Space Exploration. en-us Tue, 10 Jun 2003 04:00:00 GMT Weblog Editor 2.0 webmaster@example.com Star City http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp How do Americans get ready to work with Russians aboard the International Space Station? They take a crash course in culture, language and protocol at Russia's <a href="http://howe.iki.rssi.ru/GCTC/gctc_e.htm">Star City</a>. Tue, 03 Jun 2003 09:39:21 GMT http://liftoff.msfc.nasa.gov/2003/06/03.html#item573 Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a <a href="http://science.nasa.gov/headlines/y2003/30may_solareclipse.htm">partial eclipse of the Sun</a> on Saturday, May 31st. Fri, 30 May 2003 11:06:42 GMT http://liftoff.msfc.nasa.gov/2003/05/30.html#item572 Exempel 1:

5 Bakgrund, RSS-dokument Nature Cell Biology Publishes papers of the highest quality from all areas of cell biology. http://www.nature.com/ncb/current_issue/ Nature Publishing Group Phosphorylation-specific prolyl isomerization: is there an underlying theme? http://dx.doi.org/10.1038/ncb0505-435 Gerburg Wulf, Greg Finn, Futoshi Suizu & Kun Ping Lu Nature Cell Biology 7, 435 (2005) Talin's second persona http://dx.doi.org/10.1038/ncb0505-443 Talin is a core component of the integrin adhesion complex. It is now shown that talin also regulates transcription,an activity that is apparently independent of its interaction with integrins. Talin represses the expression of Drosophila elanogaster DE-cadherin through an unknown molecular mechanism. Nature Cell Biology 7, 443 (2005) Exempel 2, Nature Cell Biology:

6 Bakgrund, RSS-dokument

7 Bakgrund, Gene Ontology •http://www.geneontology.org/ontology/gene_ontology.obo •~18000 biologiska, cellulära och molekylära termer definierade och beskrivna, samt deras relationer mellan varandra. •Relationerna beskrivs med is_a-relationer: (om A is_a B och B is_a C så gäller även att A is_a C!) •Textfil på internet i OBO-formatet, finns även i XML-format

8 Bakgrund, Gene Ontology Snapshot (ur OBO-filen): [Term] id: GO:0000001 name: mitochondrion inheritance namespace: biological_process def: "The distribution of mitochondria\, including the mitochondrial genome\, into daughter cells after mitosis or meiosis\, mediated by interactions between mitochondria and the cytoskeleton." [PMID:10873824, PMID:11389764, SGD:mcc] is_a: GO:0048308 ! organelle inheritance is_a: GO:0048311 ! mitochondrion distribution [Term] id: GO:0000002 name: mitochondrial genome maintenance namespace: biological_process def: "The maintenance of the structure and integrity of the mitochondrial genome." [GO:ai] is_a: GO:0007005 ! mitochondrion organization and biogenesis [Term] id: GO:0000003 name: reproduction alt_id: GO:0019952 namespace: biological_process def: "The production by an organism of new individuals that contain some portion of their genetic material inherited from that organism." [GO:curators, ISBN:0198506732] subset: goslim_generic subset: goslim_plant subset: gosubset_prok is_a: GO:0007275 ! development

9 Bakgrund, Gene Ontology Exempel

10 Idéförklaring! •Skriv ett program som låter användaren söka efter nyheter i RSS-dokumenten med ett nyckelord •Om nyckelordet finns beskrivet i Gene Ontology: utöka sökorden med alla subtermer till nyckelordet (dvs, alla termer som har en is_a-relation till nyckelordet)

11 Idéförklaring Syfte: Antag att användaren är intresserad av termen A. Om termen B är i is_a-relation till A så är användaren antagligen intresserad även av B! => Sökningens recall borde öka!

12 Idéförklaring Till exempel: Om en användare är intresserad av ”protein modification” är han/hon förmodligen intresserad även av: •”peptide cross-linking” •”protein amino acid deamination” •”enzyme active site formation” •”protein amino acid phosphorylation” … med flera. Så när användaren skriver in ”protein modification” letar programmet upp dessa andra termer, och söker efter nyheter som innehåller något av dessa termer.

13 Programbeskrivning •Programmet, som jag kallar NewsFinder, är skrivet i java. •Javakoden finns att hämta på: http://www-und.ida.liu.se/~davru690/NewsFinder/NewsFinder_1.1.jar •För att köra programmet (i UNIX): Ladda ner jar-filen och packa upp med ”jar –xvf NewsFinder_1.1.jar” Kompilera koden med ”javac NewsFinder_1.1.jar” Starta programmet med ”java NewsFinder”

14 Programbeskrivning •NewsFinder är startklassen, innehåller det grafiska gränssnittet •GO läser av internet-ontologin och sparar en representaion av denna som en hashtabell. •NewsReader kopplar upp mot RSS-dokumenten och hämtar nyheterna •WordMatcher utökar användarens sökord, och matchar dessa mot nyheterna KlassbeskrivningUML-diagram

15 Programbeskrivning •Hur ska programmet läsa in Gene Ontology? Några klurigheter! Java har ett fördefinierat paket med regular expressions!  Precis som i Perl och Python, ”parsa” texten med hjälp av regular expression-objekt, och gruppera informationen man vill åt. Programkod: Pattern namePattern = Pattern.compile("name: (.+)"); Matcher nameFinder = namePattern.matcher(line); …. if (nameFinder.matches()) name = nameFinder.group(1); Gene Ontology: [Term] id:GO:0000001 name: mitochondrion inheritance ….

16 Programbeskrivning •… och på precis samma sätt vid inläsning av RSS-dokumenten: RSS-dokument: Phosphorylation-specific prolyl isomerization: is there an underlying theme? http://dx.doi.org/10.1038/ncb05 05-435 ….. Programkod: Pattern titlePattern = Pattern.compile(" (.+) "); Matcher titleFinder = titlePattern.matcher(line); … if (titleFinder.matches()) titleTemp = titleFinder.group(1);

17 Programbeskrivning •Hur ska Gene Ontology representeras? Fler klurigheter! Vill snabbt kunna komma åt alla subtermer till en term.  Använd en hashtabell! För varje term i Gene Ontology, skapa en motsvarighet i hashtabellen, med termens namn som nyckel och en lista som pekar på sub-termer som värde. Metoden som hämtar en terms subtermer kan då fungera rekursivt.

18 Programbeskrivning •Relationerna i GO är is_a-relationer, dvs ”uppåt-relationer”, men programmet vill ha relationerna åt andra hållet! Fler klurigheter!

19 Programbeskrivning Lös detta med en inläsningsalgoritm: 1.Läs in GO term för term, och för varje term gör ett entry i hashtabellen som innehåller en is_a-lista. 2.Gå sedan igenom hashtabellen, entry för entry. För varje entry, gå igenom dess is_a-lista. För varje is_a-term, skapa en subterm-länk mellan is_a-termen och den aktuella termen. Programmet kan sedan använda subterm-länkarna för att hitta en terms subtermer!

20 Programbeskrivning •Inläsningen och processandet av online- ontologin tar tid! En till klurighet! Ontologin förändras antagligen inte jättemycket vid varje uppdatering, så programmet behöver förmodligen inte läsa in en ny version varje dag  Spara GO-representationen i en fil efter inläsning, och läs in denna fil nästa gång programmet startar!

21 Programbeskrivning Det grafiska gränssnittet:

22 Programbeskrivning •Man kan utöka sökandet ännu mer, och låta programmet ta med alla GO-termer som ens sökord passar in i (minskar dock precisionen!) •Man kan även inkludera GO-definierade synonymer i sökningen •Man kan välja om sökningen ska ta hänsyn till stora eller små bokstäver •Man kan välja i vilka RSS-fält sökningen ska ske ( och eller Några funktioner

23 Programbeskrivning Det grafiska gränssnittet efter en sökning:

24 Utvärdering •Fungerar programmet som det är tänkt, med avseende på grundidén? •Fungerar tilläggsfunktionerna? •Hur påverkas precision och recall? •Hur kan programmet förbättras? •Hur kan man på ett systematiskt och rättvist sätt utvärdera programmets funktionalitet?

25 Utvärdering Några lyckade exempel:

26 Utvärdering Några lyckade exempel (synonym):

27 Utvärdering Några lyckade exempel (synonym + UNIX):

28 Utvärdering •Precision: hur stor andel av träffarna är relevanta? Antagligen oförändrat gentemot en vanlig sökning •Recall: hur stor andel av de relevanta artiklarna hittas? Antagligen (lite) bättre gentemot en vanlig sökning!

29 Utvärdering Dock: •Man har tyvärr inte jättestor nytta av programmet. Artiklarna innehåller oftast inte jättemånga GO-termer, och för artiklar som helt saknar GO-termer tillför inte programmet något. (trots att GO har 18000 termer!)

30 Utvärdering •Om man inte har så god kännedom om hur termerna i GO kan se ut är det ganska låg sannolikhet att ens sökord råkar vara en GO-term.  Oftast lättast att utgå från GO och därefter göra sökningen.

31 Utvärdering •Låta användaren välja vilka typer av GO- synonymer som ska tas med (finns 4 typer) •Tillåta att fler än en sök-sträng skrivs in •Tillåta boolesk sökning? •(tekniskt) Gör en applet av programmet så blir det enklare tillgängligt. Hur kan programmet göras bättre?

32 Utvärdering •Vid utökad sökning, låt användaren begränsa sig genom att använda is_a-relationer? T ex: ta med alla termer som innehåller ”DNA” men som dessutom är (is_a) ”DNA repair” Kanske kan precisionen på detta sätt ökas? Hur kan programmet göras bättre?

33 Utvärdering •Ja! Det borde finnas en tagg som beskriver vad varje nyhets-item handlar om! …och keywordsen får gärna vara GO- termer =) Kan RSS-sidorna göras bättre?

34 Utvärdering Hur kan man på ett systematiskt sätt bedöma programmets funktion? Min tanke: •Gå igenom RSS-dokumenten artikel för artikel. Se efter hur många GO-termer som (som sökord) skulle hitta den aktuella artikeln. Summera och dela med antalet artiklar.

35 Utvärdering •Detta utvärderingsskript har jag dock ännu ej skrivit. •Skriptet, och ev fler funktioner, jobbar jag vidare med i projektkursen! Intresserade åhörare kan få en kopia av den rapporten, när den är klar =)

36 Frågor! Min fråga till er: Har ni något förslag på hur programmet kan förbättras??


Ladda ner ppt "NewsFinder! Översikt av presentationen: •Bakgrund •Idéförklaring •Programbeskrivning, funktioner •Utvärdering •Frågor."

Liknande presentationer


Google-annonser