Hjälp med Ruby, åäö
Hjälp med Ruby, åäö
Hej håller på lite med ett program som crawlar webbsidor och sparar enskilda ord.
som jag sen ska ha till ordlistor.
Det är inte skrivet av mig från början.
http://www.digininja.org/projects/cewl.php
Problemet jag har är att den vägrar skriva ut åäö har provat varenda regexp som kan tänkas.
Skulle någon vänlig själ vilja ge mig tips eller en knuff i rätt riktning?
Har provat att ändra encoding osv. Jag misstänker att det har med det att göra..
Tack på förhand!
som jag sen ska ha till ordlistor.
Det är inte skrivet av mig från början.
http://www.digininja.org/projects/cewl.php
Problemet jag har är att den vägrar skriva ut åäö har provat varenda regexp som kan tänkas.
Skulle någon vänlig själ vilja ge mig tips eller en knuff i rätt riktning?
Har provat att ändra encoding osv. Jag misstänker att det har med det att göra..
Tack på förhand!
Re: Hjälp med Ruby, åäö
> Har provat att ändra encoding osv.
Från och till vadå ?
I Python brukar jag lösa det med "Latin-1" eller "ISO-8859-1".
>
675 rader kod! Utan någon hint om *var* problemet uppstår.
Går det verkligen inte att göra en mindre "reproducer"? D.v.s.
minsta möjliga kodexempel som uppvisare det aktuella problemet.
Från och till vadå ?
I Python brukar jag lösa det med "Latin-1" eller "ISO-8859-1".
>
675 rader kod! Utan någon hint om *var* problemet uppstår.
Går det verkligen inte att göra en mindre "reproducer"? D.v.s.
minsta möjliga kodexempel som uppvisare det aktuella problemet.
Re: Hjälp med Ruby, åäö
Jag har provat 8859-1 och UTF-8
rad 602
om jag ändrar min regex till
Vilket jag tror är rätt avslutning?
Då borde den väl spotta fram de åäö den hittar?
Exempel på hur det ser ut
rad 602
Kod: Markera allt
# remove any symbols
words.gsub!(/[^a-z0-9]/i," ")
# add to the array
words_arr+=words.split(" ")
Kod: Markera allt
words.gsub!(/[^A-Za-z0-9\xE4\xE5\xF6\xC4\xC5\xD6]/," ")
Då borde den väl spotta fram de åäö den hittar?
Exempel på hur det ser ut
Kod: Markera allt
tillgng
tjnst
tjnsten
tjnster
tjnstern
tj�nst
tj�nster
Re: Hjälp med Ruby, åäö
Det är inte så att verktyget, på samma sätt som Python, jobbar
med Unicode per default? Då kanske det inte räcker med encoding,
utan man måste convertera till/från Unicode också, kanske...
Gissar lite vilt här...
Varför har du både "tjnst" och "tj�nst" i exemplet?
Kommer de inte från samma källa?
Hur är den där symbolen kodad? Det ser ut som 6E om
jag kollar rätt, det saknas i och för sig i din regex.
Var kommer koderna "xE4\xE5\xF6" från?
Varför just *de* koderna?
med Unicode per default? Då kanske det inte räcker med encoding,
utan man måste convertera till/från Unicode också, kanske...
Gissar lite vilt här...

Varför har du både "tjnst" och "tj�nst" i exemplet?
Kommer de inte från samma källa?
Hur är den där symbolen kodad? Det ser ut som 6E om
jag kollar rätt, det saknas i och för sig i din regex.
Var kommer koderna "xE4\xE5\xF6" från?
Varför just *de* koderna?
Re: Hjälp med Ruby, åäö
Om jag tvingar fram ISO-8859-1 genom att lägga till:
Så får jag följande:
när den träffar på åäö i texten på en websida
Kod: Markera allt
#Encoding: ISO 8859-1
Kod: Markera allt
checking page http://hemsida.net/sida...
There was a problem handling word generation
Error: #<Encoding::CompatibilityError: incompatible encoding regexp match (ISO-8859-1 regexp with ASCII-8BIT string)>
Re: Hjälp med Ruby, åäö
En googling på felmeddelandet ger t.ex:
http://yehudakatz.com/2010/05/05/ruby-1 ... for-rails/
Där verkar det stå en hel del förklarat.
http://yehudakatz.com/2010/05/05/ruby-1 ... for-rails/
Där verkar det stå en hel del förklarat.
Re: Hjälp med Ruby, åäö
Nu har jag gjort framsteg tror jag?
Ger mig några rätt, men kan inte alls förstår varför vissa ord blir rätt och andra fel?
Kod: Markera allt
words.gsub!(/[^A-Za-z0-9\xE4\xE5\xF6\xC4\xC5\xD6]/," ").force_encoding("ISO-8859-1")
Kod: Markera allt
Auml
Bara
Behöver
Load
Någon
Senaste
Varfr
Vra
anvnder
behva
bestlla
bestllningar
bestllningsformulren
betaltjnster
brja
frgor
frn
full
hjälp
ivg
jmt
lga
lgga
mail
mailkonton
med
menyn
mjligheten
mnads
ngra
nya
nyheten
nyheter
någon
och
oss
paket
priser
raderats
rsavgift
sjlva
skerhet
skicka
slja
stndigt
support
till
tillgng
tjnst
tjnsten
tjnster
tjnsterna
tjänst
tjänster
trenden
varfr
vlkommen
vra
våra
Re: Hjälp med Ruby, åäö
Du kan inte köra koden i någon debugger så att du ser vad som händer när den bearbetar texten? Eller modifiera programmet så att du skriver ut källtexten innan. Det kan ju vara någon skillnad på indata som gör att det inte blir några åäö. Du hade ju t.ex både "Tjnst" och "Tjänst" med i listan.
Re: Hjälp med Ruby, åäö
Meconer!
Jag såg precis det mönstret, tjnst och tjänst alltså
Kollade igenom vad den läst och fick fram att den hittade åäö i klartecken.
men så klart hittar den inte HTML-koderna..
Något tips på hur jag kan fixa det?
Jag såg precis det mönstret, tjnst och tjänst alltså
Kollade igenom vad den läst och fick fram att den hittade åäö i klartecken.
men så klart hittar den inte HTML-koderna..
Kod: Markera allt
Ö Ö
ö ö
Ä Ä
ä ä
Å Å
å Å
Re: Hjälp med Ruby, åäö
> Jag såg precis det mönstret, tjnst och tjänst alltså
Märkligt, fast jag skrev just det för 5-6 inlägg sedan ?
> Något tips på hur jag kan fixa det?
Det brukar finnas escape/unescape funktioner för att konvertera
dessa koder till/från "vanliga" tecken.
Märkligt, fast jag skrev just det för 5-6 inlägg sedan ?
> Något tips på hur jag kan fixa det?
Det brukar finnas escape/unescape funktioner för att konvertera
dessa koder till/från "vanliga" tecken.
Re: Hjälp med Ruby, åäö
Jag skulle lägga in en regex till som byter ut alla uml-delar mot de "riktiga" tecknen innan ordletningen.
Re: Hjälp med Ruby, åäö
Sodjan, helt korrekt, men jag började studera det mönstret nyss när jag fick igång åäö. Innan dess så förstod jag inte innebörden av det.
Jag funderar på om det inte är enklare att filtrera bort ord som har html-översatta åäö
Lite input på det kanske?
om jag vill filtrera bort ett helt ord som innehåller tex Ä hur ska jag utforma regexen då?
Jag är mycket tacksam för er hjälp, och har även lärt mig att lyssna på Sodjan
Jag funderar på om det inte är enklare att filtrera bort ord som har html-översatta åäö
Lite input på det kanske?
om jag vill filtrera bort ett helt ord som innehåller tex Ä hur ska jag utforma regexen då?
Jag är mycket tacksam för er hjälp, och har även lärt mig att lyssna på Sodjan

Re: Hjälp med Ruby, åäö
Nu kan jag inte Ruby men vad jag förstår så är gsub en global regex replace. Då borde du kunna ha words.gsub( /Ä/ , "Ä" ) så byter den ut alla
Ä mot Ä. Det blir ju en för varje av ÅÄÖåäö då. Men kikar man på rad 525 i koden så finns det följande:
# check if this is needed
words.gsub!(/&[a-z]*;/, "")
Den där rackaren tar ju bort en massa specialtecken (ej versaler dock). Av kommentaren att döma så är det nåt som den ursprunglige programmeraren har tänkt sig undersöka närmare "sen". Och eftersom han förmodligen har engelska som sitt språk så har han inga bekymmer och därför har "sen" aldrig kommit. Tyska y borde ju också gå bort vad jag förstår. Men det kanske finns något som fixar specialtecknen innan man ens kommer dit, som Sodjan säger. Det är ju i så fall enklast.
Ä mot Ä. Det blir ju en för varje av ÅÄÖåäö då. Men kikar man på rad 525 i koden så finns det följande:
# check if this is needed
words.gsub!(/&[a-z]*;/, "")
Den där rackaren tar ju bort en massa specialtecken (ej versaler dock). Av kommentaren att döma så är det nåt som den ursprunglige programmeraren har tänkt sig undersöka närmare "sen". Och eftersom han förmodligen har engelska som sitt språk så har han inga bekymmer och därför har "sen" aldrig kommit. Tyska y borde ju också gå bort vad jag förstår. Men det kanske finns något som fixar specialtecknen innan man ens kommer dit, som Sodjan säger. Det är ju i så fall enklast.
Re: Hjälp med Ruby, åäö
meconer, sodjan Tack för er hjälp!
Nu fungerar det ganska bra, ska testköra det inatt, finns säkert fler saker jag kommer på!
Ordlistorna ska det generas hashar av senare. Sen får vi se vad det blir av det.
Förslag är välkomna!
Nu fungerar det ganska bra, ska testköra det inatt, finns säkert fler saker jag kommer på!
Ordlistorna ska det generas hashar av senare. Sen får vi se vad det blir av det.
Förslag är välkomna!
Kod: Markera allt
# strip comment tags
body.gsub!(/<!--/, "")
body.gsub!(/-->/, "")
body.gsub!("Ä", "\xC4")
body.gsub!("ä", "\xE4")
body.gsub!("å", "\xE5")
body.gsub!("Å", "\xC5")
body.gsub!("Ö", "\xD6")
body.gsub!("ö", "\xF6")
Kod: Markera allt
använder
behöva
beställa
beställningar
beställningsformulären
betaltjänster
frågor
månads
möjlighet
tjänst
tjänsten
tjänster
tjänsterna
trenden
varför
välkommen
årsavgift
Re: Hjälp med Ruby, åäö
Letade du efter någon "unescape" ?
Det brukar ligga i HTML delen av olika verktyg, det
gör så i Python i alla fall. Fördelen är att den tar även
de "&xxx;" som man inte redan har sett...
10 sekunder med Google gav: http://www.ruby-forum.com/topic/183789
Även : http://stackoverflow.com/questions/3788 ... i-for-ruby
Det brukar ligga i HTML delen av olika verktyg, det
gör så i Python i alla fall. Fördelen är att den tar även
de "&xxx;" som man inte redan har sett...

10 sekunder med Google gav: http://www.ruby-forum.com/topic/183789
Även : http://stackoverflow.com/questions/3788 ... i-for-ruby