Humanity is doomed once the media is run by artificial intelligence. (J. Assange)
Per combattere il pensiero mainstream occorre conoscerlo. A questo scopo un gruppo di ricercatori pedanti ne ha riprodotto gli algoritmi in un simulatore. La macchina di Pavlov è un esperimento di intelligenza artificiale elementare, come lo è il fenomeno riprodotto.
Risponditore moderato
Sticazzi.
Risponditore AntiFa
Ben detto.
Codici
La community ha rielaborato in diversi linguaggi informatici il codice dei risponditori utilizzati
nell'esperimento, nell'intento di fornire a storici, ricercatori e psichiatri una base di sviluppo per
approfondire l'analisi.
Bash (Tonno nella Tonnara):
#!/bin/bash
# Generatore di risposte moderate
echo "Inserisci una frase: "
read input
phrase=$(echo "$input" | tr '[:upper:]' '[:lower:]')
x=$(echo $phrase | grep -E "russia|sovran|nazion|lira|putin")
RANDOM=$$
if [ -n "$x" ]
then
reply=$((RANDOM%5))
case $reply in
0) echo "Fascionazzionalistabrutto!"
echo ""; echo ""
;;
1) echo "Lei e' un populista. Mi fa ovvove."
echo ""; echo ""
;;
2) echo "Ah, ho capito. Il solito neurino."
echo ""; echo ""
;;
3) echo "E il debito pubblico? Eh? Eh?"
echo ""; echo ""
;;
4) echo "Vedi come e' finita l'Argentina..."
echo ""; echo ""
;;
*)
esac
else
echo "Esticazzi...";
echo ""; echo ""
fi
C++ 11 (Tiziano Diamanti):
#include <iostream>
#include <string>
#include <vector>
#include <random>
#include <omp.h>
#include <mutex>
using namespace std;
int main(int argc, char **argv)
{
string phrase, reply;
vector<string> bads = { "russia", "sovran", "nazion", "lira", "putin" };
vector<string> replies = { "Fascionazzzionalistabrutto!", "Lei e' un populista. Mi fa ovvove",
"Ah, ho capito. Il solito neurino.", "E il debito pubblico? Eh? Eh?", "Vedi come e' finita l'Argentina..." };
random_device rd;
mt19937 gen(rd());
uniform_int_distribution<> dis(0, replies.size() - 1);
cout << "Inserisci una frase" << endl;
getline (cin, phrase);
static mutex mutex;
#pragma omp parallel for
for (string bad : bads)
{
if (phrase.find(bad) != string::npos)
{
lock_guard<std::mutex> lock(mutex);
reply = replies.at(dis(gen));
break;
}
}
!reply.empty() ? cout << reply : cout << "Sticazzi";
cout << endl;
return 0;
}</std::mutex></string></string></mutex></omp.h></random></vector></string></iostream>
Free Basic (Marco Caporaletti):
REM *** Free Basic Online ***
REM *** edito at: https://www.tutorialspoint.com/compile_freebasic_online.php
Dim phrase as String
Dim lphrase as String
Dim n as Integer
Dim f as Integer
Dim bads(1 to 5) as String = {"russia","sovran","nazion","lira","putin"}
Dim replies(1 to 5) as String = {"Fascionazzionalistabrutto!","Lei è un populista. Mi fa ovvove.","Ah, ho capito. Il solito neurino.","E il debito pubblico? Eh? Eh?","Vedi come è finita l'Argentina..."}
Line Input "Inserisci una frase"; phrase
lphrase = Lcase(phrase)
f=0
For n=1 to 5
If (InStr(lphrase, bads(n)) > 0) then
f=1
Exit For
End If
next
if f > 0 then
print replies(Rnd*5)
else
print "Sticazzi!"
end if
Javascript/Jquery (vers. estesa che gira su questa pagina) (Il Pedante):
var generatore = {
response: function(id, phrase) {
this.fillReply(id, this.responder[id](phrase));
},
responder: {
antifa: function(phrase) {
return (phrase.toLowerCase().indexOf('fasci') == -1) ? generatore.replies.antifa[Math.floor(Math.random()*generatore.replies.antifa.length)] : 'Ben detto!';
},
moderati: function(phrase) {
var reply = 'Sticazzi.';
var replies = generatore.replies.moderati;
var bads = generatore.bads.moderati;
for (var i = bads.length - 1; i >= 0; i--) {
if (phrase.toLowerCase().indexOf(bads[i]) > -1) {
reply = replies[Math.floor(Math.random()*replies.length)];
}
};
return reply;
}
},
fillDefault: function(id, charCode) {
var defaults = this.defaults[id];
if (charCode == 38) { // Su
this.defaultIndex[id] = (this.defaultIndex[id] == 0) ? defaults.length-1 : this.defaultIndex[id] - 1;
} else { // Giù
this.defaultIndex[id] = (this.defaultIndex[id] == defaults.length-1) ? 0 : this.defaultIndex[id] + 1;
}
$('input.frase#'+id).val(defaults[this.defaultIndex[id]]);
},
fillReply: function(id, phrase) {
$('p#'+id).text(phrase);
},
defaultIndex: { antifa: 0, moderati: 0 },
defaults: {
antifa: [
'Mi scusi, sa che ore sono?', 'Buongiorno a Lei!', 'Mi sa che pomeriggio viene a piovere.', 'Vedo fascisti che escono dalle fottute pareti.'
],
moderati: [
'La sovranità appartiene al popolo, che la esercita...', 'Mio figlio suona l\'inno nazionale con l\'ocarina.', 'In Grecia non ci sono più farmaci.', 'Putin ha dichiarato che...', 'Il lavoro è sempre più precarizzato: ce lo chiede Leuropa.', 'Suono la lira in un coro di voci bianche.'
]
},
replies: {
antifa: [
'Fassista!', 'Ecco un altro fascistello da ricacciare nelle fogne.', 'Per quelli come te ci vuole Piazzale Loreto, ci vuole.', 'Gratta gratta, salta fuori il rossobruno.', 'Classico ragionamento da fascio.', 'Ti puoi nascondere finché vuoi, ma io i fasci li riconosco dal fetore.',
],
moderati: [
'Fascionazzionalistabrutto!', 'Lei è un populista. Mi fa ovvove.', 'Ah, ho capito. Il solito neurino.', 'E il debito pubblico? Eh? Eh?', 'Vedi come è finita l\'Argentina...'
]
},
bads: {
moderati: [
'russi', 'sovran', 'nazion', 'lira', 'putin'
]
}
}
Lua (Il Pedante):
print( "Inserisci una frase:" )
phrase = io.read()
bads = { "russ", "sovran", "nazion", "lira", "putin" }
replies = { "fascionazzionalistabrutto!", "Lei è un populista. Mi fa ovvove.", "Ah, ho capito. Il solito neurino.", "E il debito pubblico? Eh? Eh?", "Vedi come è finita l'Argentina..." }
reply = "Sticazzi"
for i, bad in ipairs( bads ) do
if phrase:lower():find( bad ) then
reply = replies[ math.random( #replies ) ];
break
end
end
print( reply )
MatLab (Antonio Stanziola):
phrase = lower(input('Inserisci una frase:\n','s'));
bads = {'russia', 'sovran', 'nazion', 'lira', 'putin'};
replies = {'Fascionazzionalistabrutto!',...
'Lei è un populista. Mi fa ovvove.',...
'Ah, ho capito. Il solito neurino.',...
'E il debito pubblico? Eh ? Eh?', ...
"Vedi come è finita l'Argentina"};
for b = bads
if strfind(phrase,b{1})
reply = replies{randi(length(replies))}; break
end
end
if exist('reply','var'); fprintf(strcat(reply, '\n')); else
fprintf('Sticazzi\n'); end
Perl6 (Vittore Scolari)
#!perl6
my @tokens = qw|russia sovran nazion lira putin|;
my @aggressivity = q:to/⬅ 完/.split("\n", :skip-empty);
Fascionazzionalistabrutto!
Lei e' un populista. Mi fa ovvove.
Ah, ho capito. Il solito neurino.
E il debito pubblico? Eh? Eh?
Vedi come e' finita l'Argentina...
⬅ 完
my @defaults = q:to/⬅ 完/.split("\n", :skip-empty);
Esticazzi...
⬅ 完
my $input = prompt "Inserisci una frase: ";
my $phrase= $input.lc;
if $phrase.match: any(@tokens) {
say @aggressivity.pick; say ""; say "";
} else {
say @defaults.pick; say ""; say "";
}
PHP (Il Pedante):
echo "\nInserisci una frase:\n";
$phrase = fgets(STDIN);
$bads = array('russia', 'sovran', 'nazion', 'lira', 'putin');
$replies = ('Fascionazzionalistabrutto!', 'Lei è un populista. Mi fa ovvove.', 'Ah, ho capito. Il solito neurino.', 'E il debito pubblico? Eh? Eh?', 'Vedi come è finita l\'Argentina...');
foreach ($bads as $bad) {
if(strpos(strtolower($phrase), $bad) !== false) {
$reply = $replies[array_rand($replies)];
break;
}
}
echo (isset($reply)) ? $reply : "Sticazzi.";
echo "\n\n";
PHP vers. AntiFa (Il Pedante):
echo "\nInserisci una frase:\n";
$phrase = fgets(STDIN);
echo (strpos(strtolower($phrase), 'fasc')) ? 'Ben detto.' : 'Fascista!';
echo "\n\n";
Python 2.7 (TonnoNellaTonnara):
#!/usr/bin/python
# Generatore di risposte moderate
import sys
import random
print "Inserisci una frase: "
phrase = sys.stdin.readline()
bads = ["russia",
"sovran",
"nazion",
"lira",
"putin"]
replies = ["Fascionazzionalistabrutto!",
"Lei e' un populista. Mi fa ovvove.",
"Ah, ho capito. Il solito neurino.",
"E il debito pubblico? Eh? Eh?",
"Vedi come e' finita l'Argentina..."]
random.seed()
k = random.randint(0,len(bads)-1)
for bad in bads:
if (bad in phrase.lower()):
reply = replies[k]
try:
reply
except NameError:
print "Sticazzi\n\n"
else:
print reply, "\n\n"
Ruby (Flavio):
loop do
print "Inserisci una frase: "
phrase = STDIN.readline.chomp
answer = 'Sticazzi'
answer = [
"Fascionazzionalistabrutto!",
"Lei e' un populista. Mi fa ovvove.",
"Ah, ho capito. Il solito neurino.",
"E il debito pubblico? Eh? Eh?",
"Vedi come e' finita l'Argentina..."
].sample if phrase =~ /(russia|sovran|nazion|lira|putin)/
puts answer
end
Rust (Marc0gr):
extern crate rand;
use std::io;
use rand::Rng;
// Generatore di risposte moderate /©IlPedante
fn main() {
let bads = ["russia", "sovran", "nazion", "lira", "putin"];
let replies = [
"Fascionazzionalistabrutto!",
"Lei è un populista. Mi fa ovvove.",
"Ah, ho capito. Il solito neurino.",
"E il debito pubblico? Eh? Eh?",
"Vedi com'è finita l'Argentina..."
];
println!("Inserisci una frase:");
let mut phrase = String::new();
io::stdin()
.read_line(&mut phrase)
.expect("Impossibile leggere da stdin");
let phrase = phrase.to_lowercase();
if bads.iter().any(|bad| phrase.contains(bad)) {
println!("{}", rand::thread_rng().choose(&replies).unwrap());
} else {
println!("Sticazzi");
}
}
Scratch (Stefano Longagnani): v. https://scratch.mit.edu/projects/165284396.
Scratch vers. AntiFa (Stefano Longagnani): v. https://scratch.mit.edu/projects/166494272.
Tcl/Tk (Marco Caporaletti):
# TCL/TK ActiveState ActiveTcl 8.5.17.0.298612 Nov 09, 2014
# init variables and arrays
set phrase ""
set reply "Sticazzi!"
set bads [split "russia+sovran+nazion+lira+putin"]
set replies [split "Fascionazzionalistabrutto!+Lei è un populista. Mi fa ovvove.+Ah, ho capito. Il solito neurino.+E il debito pubblico? Eh? Eh?+Vedi come è finita l'Argentina..." +]
# mainloop
while {$phrase != "end"} {
# get input
puts "Inserisci una frase o 'end'"
set phrase [string tolower [gets stdin]]
# words compare
foreach bad $bads {
if {[string first $bad $phrase] >= 0} {
set reply [lindex $replies [expr {int(rand()*[llength $replies])}]]
break
}
}
puts "$reply\n\n"
}
...
Lascia un commento