.M Posted July 22, 2013 Share Posted July 22, 2013 Jag håller på med ett litet program som snurrar igenom texter. Men jag vill applicera olika funktioner beroende på om texten är skriven på engelska eller svenska. Någon som har ett förslag på en metod som gör att jag kan detektera vilket språk texten är skriven på? Link to comment Share on other sites More sharing options...
Monshi Posted July 22, 2013 Share Posted July 22, 2013 Engelska/Svenska enbart torde inte vara så svårt att få till en analys som ger rätt svar i nio fall av tio eller än bättre. Den enklast tänkbara lösningen torde vara att leta efter ett antal typiska, vanliga ord och strofer i språket. Exempelvis torde den enklaste detektionen av svenska vara att leta efter åäö. Engelska leta efter the, that, you, those, I (stort I) Fast så fort du tar med fler språk måste du förfina matchningen givetvis men om bara två språk inte speciellt svårt. Link to comment Share on other sites More sharing options...
Thomas Tydal Posted July 22, 2013 Share Posted July 22, 2013 Jag skrev en sådan funktion för tolv år sen. Du kan testa den här: http://www.tydal.nu/article/sprakanalys/ Den bygger på att den undersöker de vanligaste bokstäverna, de vanligaste bokstäverna som följer direkt efter varandra och de vanligaste tre bokstäverna i rad. Det matchas sedan mot statistik för olika språk. Algoritmen/statistiken är inte hemlig på något vis, så om du tycker det funkar bra för dina behov kan du få den. Link to comment Share on other sites More sharing options...
.M Posted July 23, 2013 Author Share Posted July 23, 2013 Vore urgulligt om du ville dela med dig av ditt projekt. Link to comment Share on other sites More sharing options...
Thomas Tydal Posted July 23, 2013 Share Posted July 23, 2013 De vanligaste bokstäverna i engelska: e, t, a, o, n, i, s, r, h, l th, in, er, re, an, he, ar, en, ti, te the, ing, and, ion, ent, for, tio, ere, her, ate Vanligast i svenska: a, e, r, t, n, s, i, l, o, d en, er, de, an, ar, st, et, tt, in, te för, och, att, ter, det, som, and, ska, ill, ing Sen plockar jag ut de tio vanligaste bokstäverna i texten, de tio vanligaste tvåbokstäverna och de tio vanligaste trebokstäverna, och gör en jämförelse med språken som resulterar i en poängräkning. Jag ger två olika typer av poäng (ungefär samma uppdelning som i det gamla spelet Mastermind :-) A) Rätt bokstavskombination på rätt plats, alltså exempelvis att den vanligaste trebokstavskombinationen i texten är the. Rätt bokstavskombination på fel plats, alltså exempelvis att the är näst vanligast. Formeln för A-poäng är: 4x^2 + 3x - 3y + 30 Och B-poäng: x^3 + x^2 x är 0 för enbokstavskombinationer, 1 för tvåbokstavskombinationer och 2 för trebokstavskombinationer. y är positionen i frekvenstabellen, alltså 0 för den vanligaste, 1 för den näst vanligaste osv. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.