Onko pep:llä järjeä lähteä toteuttamaan KÄYTÄNNÖLLISTÄ viestinluku robottia? Miten tämä tulisi toteuttaa kohtalaisen fiksusti.
Halventava viesti, ei muuta kuin deletee.
Hyvä viesti ja läpi mentiin...
Tottakai tämä olisi parasta jos se olisi ihmisen itsensä vastuulla, mutta meitä on moneksi.
En ymmärrä mitä yrität sanoa. Voisitko puhua suomea?
Riippuu täysin siitä, mikä on "halventava" viesti. Riittääkö tunnistaa ns. rumia sanoja vai pitäisikö viestin sisältö ymmärtääkin?
Helppo vastaus: ei onnistu.
Tietokoneohjelmien menestys tämän tyyppisissä tehtävissä on edelleen heikkoa vuosien kehitystyöstä huolimatta. Millään mittarilla edes kohtalaisesti viestien "lukemisessa" pärjäävän ohjelman kehittäminen on erittäin työlästä ja vaikeaa.
Eikös tämä ole vaikeusasteella aika samaa tasoa, mitä konekääntäjät... Niiden taso ei taida kovin hyvä vielä nykypäivänäkään olla? Itse pidän tätä mielenkiintoisena tutkimuksenkohteena, mutta taidot kun eivät ole vielä mitkään erityisen kehuttavat, niin siirtyköön tulevaisuuteen. :D
Itse asiassa sanoisin, että vaikeampi toteuttaa kuin nykyiset konekääntäjät. Jos konekääntäjät aidosti tajuaisivat tekstin merkityksen, niin käännökset olisivat paljon nykyistä parempia. Jos oikeasti robotin pitäisi tunnistaa halventavat viestit, niin sen pitäisi paitsi ymmärtää tekstin merkitys, tajuta myös mm. sarkasmia. Ja sarkasmiahan ei kaikki ihmisetkään tajua (ainakaan Internetissä).
Oletko kokeillut similar_text funktiota? Pitäisi onnistua.
php.net/similar_text kirjoitti:
Returns the number of matching chars in both strings.
Jooei, PHP:stä löytyy kyllä mitä erikoisempia funkkareita, mutta näin monimutkaiseen se ei kyllä enää taivu — syystäettäkoska useampaan kertaan yllä mainitut.
950c3398 kirjoitti:
En ymmärrä mitä yrität sanoa. Voisitko puhua suomea?
Onko täällä pakko kirjoittaa Suomea.
Ja muut. niin minä vähän arvelinkin, että taitaa olla turhan suuri haaste nykytekniikalle, sillä pitäisi sen muutakin ymmärtää kuin rumat sanat. Eli taidanpa jättää tämän ajatuksen haudan lepoon.
Kai sitä voi hablaa vaikka saksaa, mutta kryptiseen kysymyksenasetteluun on hankala antaa selkeää vastausta.
Hetkinen. Siis similar_text vertailee tekstejä. Palauttaa arvon prosenteina
kuinka paljon löytyy vastaavuutta. Jos uusi teksti verrataan hyviin ja
huonoihin viesteihin, tulee a vertailun olla suurempi kuin b vertailun.
Eli keräät viestejä, ok.txt ja huonot.txt. Uusi viesti tallennetaan siihen
kumpi antaa suuremman prosentin.
Tämän heikkous on yhden sanan viesteissä jos sanaa ei vielä esiinny kummassakaan
tulee sama tulos kummastakin vertailusta, Nämä joissa on sama tulos laitat mail
funktiolla sähköpostiisi ja teet homman itse.
Joo ei palauta prosentteja, palauttaa natsaavien merkkien määrän. Ottaa kolmanneksi parametrikseen vapaaehtoisen muuttujan, johon prosenttiosuus tallennetaan. Toisekseen, wat? Mainittu menetelmä ei missään nimessä ole läheskään käytännöllinen tapa tunnistaa halventavia viestejä — muutaman kirjaimen muutos kun voi muuttaa lauseen tarkoituksen päälaelleen (vrt. "olet" vs. "et ole"), tai entäpä runokieli (lausahdusta "Olet suonikohju" käytetään Tommy Tabermannin runossa, jossa muistaakseni ylistetään naista)...
pegillä tuntuu olevan melko rajaton luottamus php:n funktioiden kykyihin.
No niin, otin kolme stringiä (tämän keskustelun, pätkän tsurigan viimeistä viestiä ja yleisestä keskustelusta Killing Engineen tarvitaan betatestaajia)
ja kyllä tuosta huomaa että string3 kuuluu string1:seen.
<? $string1 = ("Keskustelu: Nettisivut ja -ohjelmointi: viesti robotti Vasta_alkaja [08.08.2009 16:24:29] Lainaa Muokkaa Onko pep:llä järjeä lähteä toteuttamaan KÄYTÄNNÖLLISTÄ viestinluku robottia? Miten tämä tulisi toteuttaa kohtalaisen fiksusti. Halventava viesti, ei muuta kuin deletee. Hyvä viesti ja läpi mentiin... Tottakai tämä olisi parasta jos se olisi ihmisen itsensä vastuulla, mutta meitä on moneksi. 950c3398 [08.08.2009 16:27:55] Lainaa Muokkaa En ymmärrä mitä yrität sanoa. Voisitko puhua suomea? hunajavohveli [08.08.2009 16:39:46] Lainaa Muokkaa Riippuu täysin siitä, mikä on \"halventava\" viesti. Riittääkö tunnistaa ns. rumia sanoja vai pitäisikö viestin sisältö ymmärtääkin? os [08.08.2009 16:44:40] Lainaa Muokkaa Helppo vastaus: ei onnistu. Tietokoneohjelmien menestys tämän tyyppisissä tehtävissä on edelleen heikkoa vuosien kehitystyöstä huolimatta. Millään mittarilla edes kohtalaisesti viestien \"lukemisessa\" pärjäävän ohjelman kehittäminen on erittäin työlästä ja vaikeaa. Triton [08.08.2009 20:03:36] Lainaa Muokkaa Eikös tämä ole vaikeusasteella aika samaa tasoa, mitä konekääntäjät... Niiden taso ei taida kovin hyvä vielä nykypäivänäkään olla? Itse pidän tätä mielenkiintoisena tutkimuksenkohteena, mutta taidot kun eivät ole vielä mitkään erityisen kehuttavat, niin siirtyköön tulevaisuuteen. :D Grez [08.08.2009 22:48:56] Lainaa Muokkaa Itse asiassa sanoisin, että vaikeampi toteuttaa kuin nykyiset konekääntäjät. Jos konekääntäjät aidosti tajuaisivat tekstin merkityksen, niin käännökset olisivat paljon nykyistä parempia. Jos oikeasti robotin pitäisi tunnistaa halventavat viestit, niin sen pitäisi paitsi ymmärtää tekstin merkitys, tajuta myös mm. sarkasmia. Ja sarkasmiahan ei kaikki ihmisetkään tajua (ainakaan Internetissä). peg [08.08.2009 22:51:30] Lainaa Muokkaa Oletko kokeillut similar_text funktiota? Pitäisi onnistua. tsuriga [08.08.2009 23:22:31] Lainaa Muokkaa php.net/similar_text kirjoitti: Returns the number of matching chars in both strings. Jooei, PHP:stä löytyy kyllä mitä erikoisempia funkkareita, mutta näin monimutkaiseen se ei kyllä enää taivu — syystäettäkoska useampaan kertaan yllä mainitut. Vasta_alkaja [09.08.2009 00:40:29] Lainaa Muokkaa 950c3398 kirjoitti: En ymmärrä mitä yrität sanoa. Voisitko puhua suomea? Onko täällä pakko kirjoittaa Suomea. Ja muut. niin minä vähän arvelinkin, että taitaa olla turhan suuri haaste nykytekniikalle, sillä pitäisi sen muutakin ymmärtää kuin rumat sanat. Eli taidanpa jättää tämän ajatuksen haudan lepoon. tsuriga [09.08.2009 01:13:02] Lainaa Muokkaa Kai sitä voi hablaa vaikka saksaa, mutta kryptiseen kysymyksenasetteluun on hankala antaa selkeää vastausta. peg [09.08.2009 08:18:14] Lainaa Muokkaa Hetkinen. Siis similar_text vertailee tekstejä. Palauttaa arvon prosenteina kuinka paljon löytyy vastaavuutta. Jos uusi teksti verrataan hyviin ja huonoihin viesteihin, tulee a vertailun olla suurempi kuin b vertailun. Eli keräät viestejä, ok.txt ja huonot.txt. Uusi viesti tallennetaan siihen kumpi antaa suuremman prosentin. Tämän heikkous on yhden sanan viesteissä jos sanaa ei vielä esiinny kummassakaan tulee sama tulos kummastakin vertailusta, Nämä joissa on sama tulos laitat mail funktiolla sähköpostiisi ja teet homman itse. "); $string2 = (" January [26.07.2009 16:26:09] Lainaa Muokkaa Löytyisiköhän täältä innokasta porukkaa testailemaan tota meidän tekemää nettiräiskintää. Se on vähän niinku Tapan Kaikki mutta netissä, suurempia mappeja, paljon aseita jne. Linux-versiokin pelistä on saatavilla. Tohon tarvittas niinki paljon ku 30 testaajaa. http://killingengine.com/ Tuolta löytyy screenshotteja, aikataulua, video yms. yms. IRC-kanava on #killingengine ja löytyy IRCnetistä. MSN: mtcfear@hotmail.com Sähköposti: juha_keranen@suomi24.fi Tänneki voi vastailla ja kysellä ja pikaviestiä voi toki laittaa. Nettisivuilta saatavalla paketilla ei pelaamaan pääse muuta kuin viralliselle serverille ja oikeina testiajankohtina. Siksi olisikin hyvä että otatte yhteyttä tai kaikkein mieluiten tulette tuonne IRC-kanavalle. Screenshot vielä: http://www.killingengine.com/images/screenshots/ss007.jpg January [29.07.2009 16:20:48] Lainaa Muokkaa Video viimeisimmästä betatestistä: http://www.youtube.com/watch?v=1wb3ofkW7V4 Metabolix [29.07.2009 16:29:06] Lainaa Muokkaa Suunnitelmat taisivat vähän pienentyä vuoden 2005 versiosta? Mutta hienoa, että edes jotain tuli ulos. Linux-versiosta haluaisin huomauttaa, että suurella osalla Linuxeista se ei varmastikaan toimi, koska kirjastojen nimet ja erityisesti versionumerointi vaihtelevat distribuutiosta toiseen. Itselläni ei esimerkiksi ole tarvittavaa tiedostoa libopenal.so.0, on kylläkin kolme muuta libopenal.so-alkuista. Lisäksi paketit on tapana tehdä niin, että paketista purkka.tar.gz aukeaa yksi hakemisto nimeltä purkka, joka sitten sisältää ne varsinaiset tiedostot. Muuten on vaara, että paketin tiedostot sattuvat menemään käyttäjän omien, samannimisten tiedostojen päälle, kun sen varomattomasti purkaa esimerkiksi kotihakemistoon. January [29.07.2009 16:59:33] Lainaa Muokkaa Eip. Tuo peli on vielä tekemättä. :) Tämä on aloitettu vasta 2006. January [29.07.2009 19:05:08] Lainaa Muokkaa Uusimpaan päivitykseen on nyt myös korjailtu bugeja. Osalla peli kaatui piakkoin tiiminvalinnan jälkeen. Kysymyksessä oli ajuribugi, joka korjaantui muuttamalla seinän piirto käyttämään verteksipuskuria. Muutamalla muulla peli ei lähtenyt edes käyntiin. Olisi kiva saada nämä henkilöt takaisin paikalle, että saataisiin peli toimimaan mahdollisimman monella kokoonpanolla. January [31.07.2009 06:31:34] Lainaa Muokkaa Muistakaas tänään toi betatesti klo 20:00. Parannuksia: - Chatissa toimii nyt ääkkö-öökköset sun muut erikoismerkit. - Tiimin vaihdosta on korjailtu bugeja. - Pelillä uusi ikoni. - Kaatuilubugeja korjattu. Varsinkin muutamalla peli kaatui heti tiiminvalintaan, mikä on nyt kunnossa. January [08.08.2009 18:31:45] Lainaa Muokkaa Sunnuntaina 9.8. olisi sitten testit klo 21:00, joten kaikki halukkaat mukaan. Peliin on tehty nyt sulavammat maatilet, korjattu bugi, joka tekee pelaajaspriten ympärille mustan laatikon ja lisäilty vähän aseita. Kanavahan oli sitten #killingengine @ IRCnet ja nettisivu http://killingengine.com mistä voi pelipaketin ladata hiukan (about 10 min) ennen testejä, jos ei huvita tulla irkkiin pyörimään. vehkis91 [08.08.2009 20:22:35] Lainaa Muokkaa Yritän ehtiä mukaan huomenn. "); $string3 = (" Joo ei palauta prosentteja, palauttaa natsaavien merkkien määrän. Ottaa kolmanneksi parametrikseen vapaaehtoisen muuttujan, johon prosenttiosuus tallennetaan. Toisekseen, wat? Mainittu menetelmä ei missään nimessä ole läheskään käytännöllinen tapa tunnistaa halventavia viestejä — muutaman kirjaimen muutos kun voi muuttaa lauseen tarkoituksen päälaelleen (vrt. \"olet\" vs. \"et ole\"), tai entäpä runokieli (lausahdusta \"Olet suonikohju\" käytetään Tommy Tabermannin runossa, jossa muistaakseni ylistetään naista)... "); similar_text($string1, $string2, $p1); echo "string 1 - 2 tulos: $p1%<br>"; similar_text($string1, $string3, $p2); echo "string 1 - 3 tulos: $p2%<br>"; similar_text($string2, $string3, $p3); echo "string 2 - 3 tulos: $p3%<br>"; ?>
Entäs levenshtein? Itse olen sitä funkkaria tekstien vertailuun käyttänyt
Levenshteini syö vain alle 256 merkkiä pitkiä merkkijonoja. Millä ihmeen logiikalla kolmonen kuuluu ykköseen, peg?
string 1 - 2 tulos: 20% string 1 - 3 tulos: 11% string 2 - 3 tulos: 10%
Ja kuinka tätä tulosta voidaan käyttää halventavien ja hyväksyttävien viestien erotteluun?
EDIT: Alla oikeat prosentit, testasin päin persusta. Vielä alempana kuitenkin oiva esimerkki siitä, minkä takia ko. menetelmä on vailla pohjaa.
Mulla tulostaa:
string 1 - 2 tulos: 19.1993233719%
string 1 - 3 tulos: 25.3381424707%
string 2 - 3 tulos: 10.0369783413%
EDIT: tietysti jos hyvän haluaa niin täytyy kehittää, ei tämä valmis ole,
mutta tästä se lähtee.
1 - 2 kertoo noiden keskustelujen samanlaisuuden keskimäärin.
1 - 3 tsurigan teksti (3) keskustelussa jossa tsuriga mukana.
2 - 3 keskustelu (2) jossa tsuriga ei ole mukana.
Tässä esimerkissä poikkeamat ovat ihan selvät.
tsurigan teksti erottuu, nyt vain vertailut muutetaan hyviin ja huonoihin
teksteihin.
Aukoton tämä ei ole, mutta tällä voidaan helpottaa moderoijien työtä.
Kuin myös kiellettyjen sanojen listalla.
EDIT: jostain syystä osa tekstiä putosi pois, tässä linkki
http://www.veijola.net/similar_text/
(suokaa anteeksi ruosteinen PHP-koodaus)
<table> <?php $viesti[] = "Kiitos hyvistä vinkeistä!"; $viesti[] = "Neuvonne olivat oikein hyviä. Kiitos."; $viesti[] = "Hyi että, viestissä on HIV!"; $viesti[] = "Makkarakeitto on hyvää."; $l = 4; echo "<tr><td></td>"; for ($i=1; $i<=$l; $i++) { echo "<td><b>$i</b></td>"; } echo "</tr>"; for ($i=0; $i<$l; $i++) { echo "<tr>"; echo "<td><b>".($i+1)."</b>: $viesti[$i]</td>"; for ($j=0; $j<$l; $j++) { similar_text(strtolower($viesti[$i]), strtolower($viesti[$j]), $p); echo "<td>".round($p)."</td>"; } echo "</tr>"; } ?> </table>
Mitkä viesteistä oikeasti "vastaavat" eniten toisiaan? Mitä sanoo similar_text
?
Tuloste on seuraava:
1 2 3 4 1: Kiitos hyvistä vinkeistä! 100 18 54 46 2: Neuvonne olivat oikein hyviä. Kiitos. 18 100 27 38 3: Hyi että, viestissä on HIV! 54 27 100 33 4: Makkarakeitto on hyvää. 46 38 33 100
Aihe on jo aika vanha, joten et voi enää vastata siihen.