Språkteknologi och Open Source

Relevanta dokument
Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

Tekniker för storskalig parsning

Språkteknologi. Språkteknologi

Svenska Linuxföreningen. Fri programvara Mer än bara gratis 1(17) Copyright 2006 Marcus Rejås

Med Zipf mot framtiden En integrerad lexikonresurs för svensk språkteknologi

Grundläggande textanalys. Joakim Nivre

Open Source - Eller som vi säger, Fri programvara

Fil: /home/lah/undervisning/sprakteknologi/ohbilder/oh1_kv.odp. Tjänster

Open Source - Eller som vi säger, Fri programvara

Denna presentation är inte klar, kommentarer mottages tacksamt! CyberRymden

Lösningsförslag till tentamen i Språkteknologi 2D1418,

Tekniker för storskalig parsning: Grundbegrepp

Open Source-licenser

Teoretisk lingvistik och datalingvistik. Robin Cooper

Syntaktisk parsning (Jurafsky & Martin kapitel 13)

bakgrund och förutsättningar Med Zipf mot framtiden En integrerad lexikonresurs för svensk språkteknologi återanvändning av befintliga resurser SALDO

Juridiska frågor kring fri programvara och öppen källkod

Migrering av applikationen AMM till molnet

HUMANISTISKA FAKULTETEN. Språkteknologi, masterprogram, högskolepoäng

Öppen/Fri programvara

Svenska Linuxföreningen. Fri programvara Mycket mer än gratis 1(36) Copyright 2005, 2006 Marcus Rejås

Språkpsykologi/psykolingvistik

Inledning. Hur få hjälp? Språkkontroller. Grim. Språteknologi på Språkrådet SPRÅKTEKNOLOGI FÖR SPRÅKVÅRDARE

Väl godkänt (VG) Godkänt (G) Icke Godkänt (IG) Betyg

Grammatik för språkteknologer

Open Source-licenser

Slutrapport Vertikala Sökmotorer Uppdrag från.se:s Internetfond Våren 2008

Material från

SPRÅKTEKNOLOGIPROGRAMMET

Symbolspråk som alternativa och kompletterande kommunikationsmedel

Programvaror - Jo, tack, det vill vi ha...

Föreläsning 5: Modellering av frasstruktur. 729G09 Språkvetenskaplig databehandling Lars Ahrenberg

Grammatik för språkteknologer

729G09 Språkvetenskaplig databehandling (2018) Kursintroduktion. Marco Kuhlmann Institutionen för datavetenskap

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Svenska Linuxföreningen. Fri programvara Mycket mer än bara gratis 1(29)

UB:s sö ktjä nst - Söka artiklar och annan litteratur

SPRÅKTEKNOLOGIPROGRAMMET

Bedömning av Examensarbete (30 hp) vid Logopedprogrammet Fylls i av examinerande lärare och lämnas i signerad slutversion till examinator

Kom igång med SpellRight

SPRÅKTEKNOLOGIPROGRAMMET (STP)

Fråga bibliotekarien. Länkbiblioteket. Sökslussen. Metasökprogrammet Frank och Söksam. biblioteken.fi >

Inledande programmering med C# (1DV402) Introduktion till C#

Kort om World Wide Web (webben)

Opponenter: Erik Hansen Mats Almgren Respondent: Martin Landälv ioftpd-verktyg

BCI. Mats Lundälv. Senior IKT-pedagog. f.d. DART (Sahlgrenska universitetssjukhuset) och SPSM BCI

Innehåll. Språkinlärning: mänsklig och datorstödd. Olika typer av program för datorstödd språkinlärning. Varför datorer i språkutbildning?

Bedömning av Examensarbete (30 hp) vid Logopedprogrammet Fylls i av examinerande lärare och lämnas till examinator

Kvantitativ samhällsanalys med språkteknologiska metoder.

Riktlinjer för bedömning av examensarbeten

Semantik och pragmatik

Introduktion till språkteknologi. Datorstöd för språkgranskning

Open Source - Utmaningar och fördelar

Att använda Stava Rex i Word 2007

Forskning och utveckling inom språkteknologi Uppgift 3: Projektförslag Parallelliserad dependensparsning i CUDA

Föreläsning 6: Analys och tolkning från insamling till insikt

Språk, datorer och textbehandling

Snabbguide till Cinahl

Open Source - Program och hur man väljer

Svensk nationell datatjänst, SND BAS Online

Parsning. TDP007 Konstruktion av datorspråk Föreläsning 6. Peter Dalenius Institutionen för datavetenskap

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

ÄENA23, Engelska II, 15 högskolepoäng English II, 15 credits Grundnivå / First Cycle

Betydelse och betydelse

Modellering med kontextfri grammatik Kontextfri grammatik - definition En enkel kontextfri grammatik Klasser av formella språk

Bilaga 1. Teknisk kravspecifikation

Nonogram

Licenser - Jo, tack, men så få som möjligt

SÄRSKILD PRÖVNING I SVENSKA A

Lingvistik 729G08 (6 hp) Mathias Broth Charlotta Plejert Therese Örnberg Berglund Mikael Svensson

Introduktion till programmering och Python Grundkurs i programmering med Python

Språk och skrivande i årskurs 9 projektets huvudrapport Fokus på finlandssvenska elevtexter - fördjupande artiklar om skrivförmåga 15.9.

TDDD02 Språkteknologi för informationssökning / Textsammanfattning. Marco Kuhlmann Institutionen för datavetenskap

EXJOBBSOPPOSITION. Rapportförfattare: Hanif Farahmand Mokarremi Ashkan Jahanbakhsh

Taltaggning. Rapport av Daniel Hasselrot , 13 oktober 2003

Skäl för revideringarna är att kursplanerna tydligare ska spegla kursernas innehåll och mål.

Semantik. Semantik och språkteknologi

Aristi Fernandes Examensarbete T6, Biomedicinska analytiker programmet

Frågor & Svar Öppna programvaror 2010

Datasäkerhet. Hur ska vi göra för att skydda våra datorer mot virus och andra hot?

Kungliga Tekniska Högskolan Patrik Dallmann

Datorlingvistisk grammatik

SKOLFS. beslutade den -- maj 2015.

Tekniker för storskalig parsning

Grammatik för språkteknologer

a White Paper by Idea2Innovation Vad är innovation?

Examensarbete i språkteknologi

Datorbaserade verktyg i humanistisk forskning

En arbetsdag på kontoret kan innehålla. Så klarar man språkkontrollen DATORER RICKARD DOMEIJ

Avslutning. Kapitel Komprimering av filer

Installationsanvisningar HogiaLön Plus

Informationssökning och -utvinning. Informationssökning och informationsutvinning. [IR & IE] Introduktion (1) [IR & IE] Introduktion (2)

Grundläggande EndNote

Kursinformation och schema för Lingvistik 6 hp 729G08 Ht 2011

Tentamen etjänster och webbprogrammering Institutionen för informatik och media, informattionssystem Datum 30/5 Tid

Maskinöversättning möjligheter och gränser

Inlämningsuppgift: Pronomenidentifierare

Grammatiska morfem kan också vara egna ord, som t ex: och på emellertid

Språkteknologi (SV2122) Föreläsning 3: Programmering i Python

Använda SpellRight 2 i Word 2010

Transkript:

Språkteknologi och Open Source Erik Edin F01 erikedin@kth.se 15 oktober 2004 1

1 Open Source Open Source är en rörelse som syftar till att skriva datorprogram som släpps fria utan kommersiella intressen. Rörelsen är besläktad och förknippad med termen Free Software [1]. Idén bakom Open Source är att göra källkoden till programvaran tillgänglig för alla. Alla har rätten att själv ändra i källkoden, för att förändra eller förbättra programmet. Källkoden får även användas i delar till andra program. Genom dessa idéer tillåts många människor, ofta i vitt skilda delar av världen, samarbeta för att skriva program. Istället för att låta en liten grupp människor, ofta knutna till ett företag eller kommersiellt intresse, skriva och testa ett program, låter man tusentals människor världen över testa programmet man skriver. En av de mest framgångsrika projektet inom Open Source-rörelsen är operativsystemet Linux. Projektet började i början av 1990-talet och blev snart det snabbast växande operativsystemet i historien. Bruce Perens har skrivit The Open Source Definition [2] som är en mer ingående beskrivning av Open Source. 2 Språkteknologi Språkteknologi syftar till att använda datorn för att behandla naturligt språk. Begreppet språkteknologi innefattar många olika delar där datorer och naturliga språk möts. Vissa delar överlappar med området artificiell intelligens, speciellt de områden där förståelse av språket är nödvändigt. Några av de olika områdena där språkteknologi används är informationssökning med naturligt språk, textanalys för att till exempel sammanfatta en text och skrivhjälpmedel, som till exempel grammatik- och stavningskontroll. Språkteknologi använder sig mycket av lingvistiken, men försöker brygga gapet mellan datalogi och lingvistik. Man använder sig av delar av lingvistiken som morfologi och grammatik, såsom kontextfri grammatik, men lägger även till nytt som till exempel statistiska metoder. I en vid definition av språkteknologi finns även de områden som sysslar med talat språk, men för denna uppsats låter vi språkteknologi mena behandling av skriven text. 3 Projekt inom språkteknologi 3.1 WordNet WordNet [3] beskrivs som "en lexikal databas för det engelska språket". Detta betyder att WordNet har en databas över ord och dess meningar. WordNets styrka ligger i att orden är relaterade till varandra. Dessa relationer kan vara bland annat 2

lexikala och semantiska. De olika relationerna som är möjliga beror på ordet man tittar på. WordNets databas är begränsad till ord som ligger i de öppna ordklasserna. Andra ordklasser, som till exempel pronomen, anses inte vara intressanta för Word- Nets användning. Denna uppbyggnad av databasen möjliggör att man till exempel kan titta på relationen mellan olika meningar eller ord i en skriven text. 3.1.1 Metoder WordNet använder ett antal olika språkteknologiska metoder i sin databas. På en lexikal nivå används morfologisk analys av sökorden för att passa in dem på de stammar som sparas i databasen. Detta måste man göra eftersom det är orimligt att spara alla olika böjningar av alla ord i engelskan i en och samma databas. På en semantisk nivå grupperar WordNet ihop olika typer av ord, efter deras mening. Denna typ av länkning går inte att göra automatiskt, eftersom det kräver kunskap om vår omvärld. 3.1.2 Användning WordNet har blivit en väldigt populär resurs för språkteknologer. WordNet-projekt för många andra språk har startats över hela världen. Många av dessa ligger nu under organisationen Global WordNet Assocation. Organisationen finns till för att standardisera uppbyggnaden av olika ordnät och uppmuntra delning av programkod och metoder. Detta kommer inte minst att göra det enklare att bygga ordnät för nya språk. WordNet används inom många delar av språkteknologin och många projekt. WordNet har visat sig vara användbart inom den semantiska webben, som nu har börjat utvecklas världen över. 3.1.3 Problem Som publik resurs har WordNet lyckats väldigt bra. Eftersom så många projekt använder sig av och beror på WordNet har den fått ekonomiskt stöd ifrån diverse organisationer. Att slippa kommersialisera projektet leder till att andra projekt av ekonomiska skäl väljer WordNet före andra. En av de stora målen med WordNet är möjligheten att kunna koppla ihop många WordNets av många olika språk. På detta sättet skulle man kunna göra informationssökningar över flera olika språk. 3

3.2 OpenNLP OpenNLP [4] är en paraplyorganisation för Open Source-projekt relaterade till språkteknologi. Syftet med projektet är att skapa ett gemensamt ramverk för programvaran. Ett gemensamt ramverk skulle betyda högre interoperabilitet mellan programvaran inom OpenNLP, men också enklare utveckling av forskningsprojekt. Utvecklar man ett eget kommersiellt system händer det lätt att komponenterna blir väldigt tätt integrerade. Det blir väldigt svårt att använda dessa komponenter till andra system än just de som de var avsedda för. OpenNLP försöker komma åt denna typ av problem genom att modularisera ramverket, så att projekt i möjligaste mån kan integreras med andra. Detta är i synnerhet viktigt för språkteknologi, för att de grundläggande metoderna används i så många olika sammanhang. OpenNLP är inte det enda projektet som syftar till att samla språkteknologiska projekt inom Open Source. Projektet GATE, General Architecture for Text Engineering, är ett liknande projekt som är byggt av en grupp inom Sheffields universitet. GATE är betydligt äldre och mer använt än OpenNLP. Fördelen med flera olika sådana projekt är mångfalden och möjligheten att välja ett passande ramverk för just det projekt man arbetar på. 3.3 SenseRelate Många ord i ett språk, såsom svenska eller engelska, är flertydiga. Med det menas att man har flera tolkningar av ett ords mening eller dess grammatiska roll. Detta är en av de stora problemen inom språkteknologin, eftersom semantik är ett väldigt svårformaliserat ämne. Grammatiken hos naturliga språk är dessutom omöjlig att beskriva komplett. På grund av detta har man metoder för att från en flertydighet göra en tolkning så att man får en entydig mening. SenseRelate [6] är ett projekt inom OpenNLP för disambiguering av meningen av ett ord. 3.3.1 Metoder För denna typ av disambiguering har man ett målord som man vill bestämma meningen hos. För att göra detta tittar man på meningen av omkringliggande ord och externa resurser, som till exempel ordlistor, för att bestämma vilken mening författaren avsåg. SenseRelate har arbetshypotesen att den implicerade meningen hos ett målord är mer relaterat till meningen hos de omkringliggande orden än de andra möjliga tolkningarna av målordet. För att bestämma de möjliga tolkningarna av ett ords mening använder sig SenseRelate av WordNet, som beskrivs ovan. Algoritmen tar som indata ett antal ord, varav ett är märkt som målordet. De andra orden är de omkringliggande orden. Till 4

varje ord läggs till ett antal möjliga tolkningar av det ordet. Det är dessa tolkningar som tas från WordNet. För varje tolkning av målordet beräknas sedan ett likhetsmått med tolkningarna av kontextorden. Det bästa likhetsmåttet används sedan som den mest sannolika tolkningen av målordet. På detta sätt är metoden probabilistisk. 3.3.2 Använding av SenseRelate Användningar av disambiguering av ord finns i många delar av språkteknologin. I informationssökning används det för att försäkra sig om att man söker på rätt mening av ett ord. Inom automatisk textsammanfattning är dessa metoder mycket viktiga för att vet vilken del av texten som innehåller information viktig för texten i helhet. Gemensamt för dessa områden är att kunskap om omvärlden egentligen vore nödvändigt, för att man med säkerhet ska kunna söka på eller behandla rätt textmängder. I väntan på en revolution inom kunskapsteori får vi dock nöja oss med statistiska metoder. 3.3.3 Problem och svagheter Semantisk analys av ord görs av människor i stort sett omedvetet. Ofta kan vi direkt se vad ordet betyder, genom att titta på sammanhanget. Detta kräver dock en utförlig kunskap om vår omvärld. Eftersom kunskap i sig är väldigt abstrakt så är det inte konstigt att datorer har mycket svårt för att hantera det. Det är detta som tvingar oss att använda statistiska metoder, som i många fall kommer misslyckas. I vissa fall är det omöjligt till och med för människor att veta vad som menas med en mening. I sådana fall måste man helt enkelt acceptera att det inte finns någon entydig lösning på problemet med disambiguering. Eftersom datorer dock omöjligen kan veta om så är fallet så kommer de naturligtvis försöka ge en lösning i alla fall. 3.4 nlpfarm nlpfarm [5] är ett projekt, också under OpenNLP, för att underlätta utvecklingen av språkteknologiska tillämpningar. Till skillnad från SenseRelate ovan är nlpfarm inte själv en tillämpning, utan snarare ett bibliotek med verktyg. Eftersom nlpfarm är en del av OpenNLP är det mycket modulariserat, där varje del tillhandahåller funktioner inom ett specifikt område. 3.4.1 Ordkontexter nlpfarm har modulen javaconlib som är ett verktyg för algoritmer som arbetar med kontexter runt ett ord. Detta har sin användning inte minst i projekt som SenseRelate där algoritmen för disambiguering av ord använder sig av ordets kontext. 5

Modulen implementerar stöd för att hämta kontexter ur textmängder, lägga dessa i effektiva strukturer. När detta är gjort kan man sortera eller söka i strukturerna. En annan viktig funktion är att beräkna olika typer av mått på dessa kontexter, som till exempel likhetsmåttet i SenseRelate. 3.4.2 Grammatiker nlpfarm har en module för hantering av kontextfri grammatik samt probabilistiska kontextfria grammatiker. Kontextfri grammatik används vid syntaxanalys och inte minst parsning. Kontextfria grammatiker har användning inte vara inom språkteknologi och lingvistik, utan även inom datalogin och dess beskrivning av formella språk. 4 Open Source och kommersiella intressen Företag har väldigt länge varit skeptiska till Open Source då det är svårt att se hur man kan tjäna pengar på ett sånt projekt. På senare tid har dock stora företag som till exempel IBM och Sun Microsystems i högre grad börjat stödja och till och med själva utveckla programvara som är Open Source. IBM släppte senast ett språkteknologisk system som Open Source. Det fanns förväntningar om att det skulle vara ett komplett taligenkänningssystem, men det visade sig att IBM valt att inte släppa hela systemet, utan bara utvalda delar av det. Många språkteknologiska resurser, som till exempel korpusar eller taggade textmängder, kräver väldigt mycket arbete och ekonomiska resurser. På grund av detta är det oftast företag eller organisationer, som har de resurser som krävs, som gör dessa arbeten. Problemet är att detta görs i vinstintresse, vilket hindrar Open Source-projekt från att använda dessa resurser. 5 Open Source och akademiska projekt Open Source har sina rötter i forskningsvärlden och har också haft ett större stöd där än i företagsvärlden. Eftersom forskning i den akademiska världen inte är driven i ekonomiskt intresse, eller i alla fall inte i lika hög grad som den forskning företag bedriver, så är användningen av Open Source mycket mer utbredd. Open Source är ett bra sätt att sprida sin forskning och sina idéer och på ett effektivt sätt på förslag på förbättringar. 6 Fördelar Open Source har traditionellt sett varit väldigt internationellt. Det är först och främst Internet som tillåtit personer i olika delar av världen att samarbeta på projekt. Just språkteknologiska projekt kan dra nytta av detta, då personer i olika delar 6

av världen kan anpassa programmet till deras eget språk. På detta sätt kan projektet få en mångfald av språk på ett annat sätt än en utvecklingsgrupp lokaliserad i ett speciellt land kan få. Med Open Source får man en mycket större möjlighet att integrera andra program i sitt eget, än vad man skulle få med ett kommersiellt slutet system. Har man till exempel ett program som SenseRelate kan man behöva läsa filer som är av ett annat format än det som stöds. Använder man sig då av ett kommersiellt system har man inget annat val än att försöka få företaget i fråga att lägga till stöd för detta format. Använder man sig av ett program som är Open Source har man däremot möjlighet att själv förändra programmet för att lägga till det stöd man behöver. 7 Nackdelar En nackdel med Open Source är svårigheten att använda kommersiellt material i programvaran. Korpusar, till exempel, är ofta kommersiella och kan därmed inte göras tillgängliga tilsammans med annan kod. På grund av detta är Open Sourceprojekt oftast hänvisade till att använda andra Open Source-projekt, eller material vars upphovsrätt har gått ut. Exempel på sådana projekt är Project Gutenberg och Projekt Runeberg, vilka båda två i stor utsträckning publicerar äldre litteratur. Ibland kan man använda kodning av det kommersiella materialet för att göra det användbart för programmet, men ändå inte öppet för annan användning. Ett exempel på detta är Stava, där Svenska Akademiens Ordlista finns kodad i en boolesk hashtabell. Man kan på detta sätt leta efter ett ord, för att se om man hittar det, men det är däremot orimligt att ur denna hashtabell skapa en egen ordlista. Ordlistan skulle innehålla alldeles för många fel. Referenser [1] Free Software Foundation, http://www.fsf.org [2] B. Perens: The Open Source Definition (1997), http://www.opensource.org/docs/definition.php [3] WordNet, http://www.cogsci.princeton.edu/ wn [4] OpenNLP, http://opennlp.sourceforge.net [5] nlpfarm, http://nlpfarm.sourceforge.net [6] SenseRelate, http://senserelate.sourceforge.net 7