Frisim språk och spam

Lite inspirerad av Twingly och lite av Bloggz så har jag, i utvecklings-versionen av Frisim, lagt till språkidentifiering. Jag har 18 ”europeiska” språk som jag försöker identifiera. Identifieringen görs genom att jämföra frekvensen av n-gram mellan texter på olika språk. Jag har använt texter från Wikipedia på de 18 språken, genererat de 1000 mest förekommande n-gram:en från varje, och använder detta för att jämföra insamlade data mot. Jämförelsen resulterar i en ”rangordning” av de 18 språken, och det med ”minst avstånd” till n-gram:en för den insamlade texten väljs. I det fall som rangordningen inte blir så tydlig (avståndet mellan första och andra språket är litet) så väljer jag svenska som någon form av ”default-språk”.

Data som indexeras märks nu upp, på samma sätt som t.ex. källan anges, med ett språk. Det gör att det går att t.ex. begränsa sökningen till blogginlägg på svenska (eller engelska, eller bara de två, osv.).

Jag har ännu inte riktigt bestämt vad jag ska göra med språk-kategoriseringen. Mycket av det som idag kommer in i indexet men som inte är på svenska är (i någon mening) att betrakta som SPAM. Rimligen borde jag kasta ut allt som inte är på svenska, men det beslutet har jag inte tagit ännu. Kanske ska jag istället aktivt börja samla in (bra) material på andra språk.

Förhoppningsvis kommer jag att kunna flytta över språkidentifieringen till produktions-versionen av Frisim innan semestern är över.

Jag måste också ge lite cred till Kevin Burton (han med Tailrank och Spinn3r) för hans Java-kod som jag delvis har byggt min kod på. Artikeln som beskriver metoden finns hos CiteseerX.

Uppdatering: Nu har jag ”provkört” språkkategoriseringen på lite mer data, och det verkar fungera ungefär som väntat. Den är lite kass på att skilja på svenska, norska och danska, det måste åtgärdas genom att skapa lite bättre ”corpus” för de språken, och det blir problem med blogginlägg som är skrivna på flera språk. Blogginlägg som t.ex. detta klassas som skrivet på engelska, även om det innehåller lite text på svenska. Tveksam hur man vill klassa ett sådant inlägg. Twingly har kategoriserat det som bara svenska men Bloggz verkar inte ha det inlägget i sitt index (vilket antyder att det är bortsållat för att det inte är på svenska).

  1. Hej Clas,

    vad vi gör för att öka kvalitén är att detektera språk individuellt för varje inlägg i bloggens RSS-feed och sedan sätta det mest representerade språket som språk för alla inläggen. Då offrar man tvåspråkiga bloggar, men hittills är det ingen som klagat över det. Bättre att något fåtal bloggar bara får ett enda språk på sina inlägg än att alla bloggar får 5% av sina inlägg felklassificerade. Om någon blogg byter språk helt kommer klassificeringen snappa upp detta.

    Ett annat intressant problem är landsklassificering. Hur avgör man t ex att ett blogginlägg är brittiskt snarare än amerikanskt, eller från Tyskland snarare än Österrike?

    Mvh Martin

  2. Clas skriver:

    Ah, tack, okej. Jag kör identifieringen på varje nytt blogginlägg just nu, men naturligtvis skulle jag kunna göra det en gång på varje feed (eller en gång på varje feed varje vecka, typ) istället. En (annan) fördel med att göra det på en ”hel” feed, stället för på bara ett inlägg i taget, är ju att man får mer text att basera sin klassificering på.

    Att bestämma ursprungsland (eller kanske till och med hemstad) på bloggaren är också intressant, men det har jag inte gjort några sådana försök. Kanske är det möjligt att titta på vad det skrivs om (i bloggen) för att försöka gissa land/stad.

  1. There are no trackbacks for this post yet.