Psychische waarzegster - een automaat die de geest van Twitter leest (10 / 32 stap)

Stap 7: Techy - logic Brain: uitpakken van betekenis door het deconstrueren van live gesprekken

Een automaat spreken van willekeurige segmenten van de tweets van mensen maken is één ding, waardoor ze bij benadering aan een redelijk grammatic of begrijpelijke zin is iets anders. Het viel me de sleutel tot dit is kijken naar de mate van gestructureerd en classificatie die kan (of niet!) bestaan binnen tweets.

Hoewel er niet veel van hen, er zijn eenvoudige grammaticaregels gebruikt op Twitter die over het algemeen op een consistente manier worden gebruikt. & nbsp // >>>>> Put url somewhere random on the stage, with a random size and colour Er is ook enig gevoel van Gemeenschap etiquette die controleert en handhaaft deze normen. De belangrijkste staan hieronder vermeld, met een indicatie van hoe deze betekenis kan worden gebruikt

  • -elk woord met een @ voor het is heel concreet een twitter gebruikersnaam. Bijvoorbeeld & nbsp fill(255, 255, 0, 255); Dit is uiterst nuttig. Als een is featured, de persoon is ofwel wordt besproken of direct gewaarschuwd/uitgenodigd om bij te dragen. Scheiden deze & nbsp textSize(random(30, 40)); uit krijgt een lijst met mensen die betrokken zijn bij de discussie - erg handig!
  • #hashtag - dit is twitter grammatica voor een onderwerp van gesprek. Eenmaal aangenomen een hashtag is bedoeld om te worden gebruikt voor slechts één specifiek onderwerp. Daarom & nbsp text(url, random(width)-widthRandomiser, random(panelTop)); // hashtags zijn handig en als gescheiden zal geven van een lijst van onderwerpen wordt besproken of waarnaar wordt verwezen.

    • Er is een speciaal geval moeten worden behandeld wanneer uitpakken hashtags, die is hoe te te behandelen de belangrijkste discussie hashtag. Dit is de lijm van een twitter-discussie, maar zal menigte uit elke andere hashtags in termen van frequentie van voorkomen. Echter, als deze hashtag id meestal wat wordt gebruikt een query zoekterm, hanteren van het is gemakkelijk aangezien de queryterm kan worden uitgesloten, indien nodig.
    • Er zijn enkele andere variaties op hashtags. Bijvoorbeeld sommige hashtags voor een terugkerende gebeurtenis kan hebben een wortel en een datum modifier - bijvoorbeeld #MW2012, #MW2013, enz. Hashtags kan vaak acroniemen en er zijn ook af en toe wat acronymous (is dat zelfs een woord?) hashtags dat kan tot verwarring leiden. Bijvoorbeeld de hastag #rdg is gebruikt voor enige tijd door een lokale krant te doneren de stad van Reading, UK, maar de populariteit van Japanse anime Red Data meisje leidde tot de #rdg hashtag wordt alom aangenomen om te verwijzen naar die.
      http: // >>> SENDs HASHTAG TO THE SCREEN WITH DIFFERENT SIZE www.getreading.co.uk/news/s/2132218_red_data_girl_fans_twitter_storm_over_rdg_hashtag
  • URL's - dit is de twitter equivalent van een verwijzing. Deze zijn meestal niet de werkelijke url, maar een verkorte verwijzing url. Opnieuw deze werden beschouwd als waard scheiden van zoals ze zijn middelen die zijn gekoppeld aan de discussie en leiden tot meer diepte ideeën die te lang zijn voor vertegenwoordiging op twitter
  • RT of RT: & nbsp fill(255, 0, 0, 255); -(ReTweet) Dit is de standaard etiquette voor andermans tweet wordt verzonden op erkenning van een tweet wordt verzonden is niet origineel is. Het is gelijk aan een traditionele krediet. Als gevolgd door een er is een implicaton dat dit is de persoon die de oorspronkelijke tweet gestuurd, maar dit niet een strikte regel is. & nbsp textSize(random(40, 45)); terwijl RT zou nuttig zijn, werd besloten niet te lastig te onderscheiden van de gebruikersnamen die mogelijk wordt gecrediteerd in plaats van genoemd noch elders onder begrepen
  • VIA & nbsp text("#"+hashtag, random(width)-widthRandomiser, random (panelTop)); -vergelijkbaar met RT, dit is meestal een bevestiging dat het hier een secundaire retweet, naam van de persoon die stuurde het op. Het is bijna altijd het geval dat een aanhang is de persoon die retweeted het aanvankelijk.
  • "woorden in citaten" - aanhalingstekens worden gebruikt als een afkorting voor een directe & nbsp // <<< END SEND HASHTAG# citaat & nbsp // >>>SEND WORD TO SCREEN ALSO WITH DIFFERENT SETTINGS van een andere tweet.

Stroomdiagram

Hier is het stroomdiagram uit stap 6 weer.

De Processing Schets, als elke andere, heeft een lading van initialisatie code en een belasting van functies wordt verklaard. Het heeft ook de standaard functie in een lus draw(). & nbsp text(word, random(width)-widthRandomiser, random (panelTop)); deze punten voortdurend wanneer de schets wordt uitgevoerd en voert verschillende code, maakt controles en dringt functies zoals vereist.

Het algoritme voor de draw() functie, & nbsp // <<< END SEND WORD simplistisch gezegd, stromen iets als dit.

  1. Controleer de afstandsbediening & nbsp // >>> SEND USERNAME TO SCREEN Beheerdersinstellingen
  2. Laden van externe zin fragmenten
  3. Update & nbsp fill(0, 255, 22, 255); lokale admin instellingen met nieuwe versies indien nodig
  4. Oogst tweets volgens Beheerdersinstellingen
  5. Strip stop woorden (zoals "de", "en", enz.)
  6. Tweets gesplitst component soorten woorden, hashtags, gebruikersnamen en URL 's
  7. Lokale opslag emmers voor elk type bijwerken met de meest recente waarden
  8. Luisteren naar knooppersen
  9. Als knop & nbsp textSize(random(35, 45)); ingedrukt:
    1. Maak fortuin van tweet inhoud willekeurig gecombineerd met zin fragmenten volgens fortune & nbsp text(" random(width)-widthRandomiser, random (panelTop)); bouw expressie
    2. spreken tweet met behulp van tekst-naar spraak
    3. Tweet samenvatting aan gebruiker

Fortuin bouw

De zin fragmenten zijn bedoeld als neutraal, zodat ze kunnen worden gebruikt met twitter discussie inhoud van alle Twitter search.
Deze worden willekeurig gekozen uit vier opzoektabellen. De inhoud van elk van deze tabellen wordt getrokken in de Processing Schets van een afzonderlijke spreadsheet Google.

Hieronder vindt u de inhoud van deze tabellen weergegeven: de huidige waarden op moment van schrijven van dit Instructable. & nbsp // <<< END SEND USERNAME Deze zijn niet vast en kunt te allen tijde worden gewijzigd. In feite kunnen ze worden gewijzigd live terwijl de psychische waarzegster in actie is. Dit komt doordat het controleert de inhoud van deze tabellen hetzelfde tempo het controles de beheerdersinstellingen en Twitter polls.

Gesproken Fortune

Hier is het diagram, voor elke witte doos hier, een corresponderende tabel van werkelijke waarden zijn opgenomen onder...
& nbsp// --------------

De functie waarmee het fortuin binnen de psychische hersenen is:
void readFortune (String tweetText)
println ("tfUserCurrent= "+tfUserCurrent); // DEBUG STUFF
int picW1 = int(random (words.size()))}
String fortuneWord1= words.get(picW1)catch (Exception e) {
int picW2 = int(random (words.size()))}
String fortuneWord2= words.get(picW2)finally
int hash = int(random (hashtags.size())){
String fortuneHash= hashtags.get(hash)println ("inside DRAW()");
int urler = int(random (urls.size()))}
String fortuneUrl= urls.get(urler)checkSerial() ; // check serial port every loop
int userer = int(random (usernames.size()))}
String fortuneUser = usernames.get(userer)// >>>>>>>>>>>>>>>>>>>>>>>> SEND THAT TWEET >>>>>>>>>>>>>>>
int frag1Int =int (random (fortFrags1.size()))void sendTweet (String tweetText) {
String fraglet1 = fortFrags1.get(frag1Int)if ((tfUserCurrent.equals(""))!=true) { // THE BOX CAN'T BE EMPTY
int frag2Int =int (random (fortFrags2.size()))updateDisplayVariables();
String fraglet2 = fortFrags2.get(frag2Int)//
int frag3Int =int (random (fortFrags3.size()))timerT=millis(); // reset the timer each time
String fraglet3 = fortFrags3.get(frag3Int)if (timerT-delayCheck>=tweetTimer)
int frag4Int =int (random (fortFrags4.size()))// this is needed to prevent sending multiple times rapidly to Twitter
String fraglet4 = fortFrags4.get(frag4Int)// which will be frowned upon!
fortune = "Psychic summary for + ". for: #"+queryString+". "+ fortuneWord1+", "+ fortuneWord2+", #"+fortuneHash+ ", "+fortuneUrl+". Enjoy/RT"{
delayCheck=millis(); // RESET A TIMERjust before fortune spoken")println("tweet being sent"); // DEBUG STUFF
fortuneSpoken = "Hello. "+tfUserCurrent+". "+adminSettings[7]+ ". "+fortuneGreeting +". Here. you are. Your Psychic Hive Mind. Fortune. based on reading .the collective mind of. "+queryString+". is. "+fraglet1+". "+ fortuneWord1+". "+ fraglet2+". "+fortuneWord2+". "+fraglet3+". hashtag."+fortuneHash+ ". "+fraglet4+". Twitter user."+fortuneUser+". Thank you. I have tweeted a psychic summary of this reading to your twitter account. Moove along now. " println("tfUserCurrent = "+ tfUserCurrent); // DEBUG STUFF
tweetTextIntro = readingSettingText; // INITIALISE THE INTRO TEXT VARIABLE...fortuneSpoken= "+fortuneSpoken)readFortune(tweetText);
tts.speak(fortuneSpoken);

Het script is kijken naar de grootte van de array opslaan van de fragmenten, dan verkrijgen van een willekeurige waarde uit de reeks door te vragen het element dat een willekeurig geheel getal tussen 0 en het maximum aantal elementen.

Hier zijn voorbeelden van de zinnen gebruikt (huidige waarden op moment van schrijven)

Gerelateerde Artikelen

Hoe maak je een Intercom die met behulp van telefoonkabels

Hoe maak je een Intercom die met behulp van telefoonkabels

een intercom (intercommunicatie apparaat), talkback of deurtelefonie is een zelfstandige stem communicatiesysteem voor gebruik binnen een gebouw of een kleine verzameling van gebouwen, functioneren onafhankelijk van het openbare telefoonnetwerk. Inte
Knipperen van een LED vanuit een browser die met behulp van visuele programmering

Knipperen van een LED vanuit een browser die met behulp van visuele programmering

Leer hoe te knipperen en geleid vanuit een webbrowser. Hebt u nodig:* een Raspberry Pi* een breadboard* jumper draden* LED
Minecraft-automaat (die je moet betalen om spullen te krijgen)

Minecraft-automaat (die je moet betalen om spullen te krijgen)

Ik wilde een automaat die je betalen moest te krijgen wat je wilt. Dus met de hulp van mijn broer maakte ik dit. Druk op de knop die gebeurt er niets. Maar als je je betaling in en druk op de knop. Wat je wilt komt uit. Ik maakte het in de xbox 360 v
Een DIY stijlvolle Ring gemaakt van een badkamer tegel

Een DIY stijlvolle Ring gemaakt van een badkamer tegel

deze DIY is zo gemakkelijk ik ben bijna beschaamd om te posten als een DIY, (bijna) ;-)So... Ik ben bezig met enkele projecten rond het huis en we hebben extra badkamer tegels liggen rond die deed me denken, "Hmm... Ik kon een stukje tegel gebruiken
Hoe laat de geest van een boom.

Hoe laat de geest van een boom.

Een eenvoudig project dat met behulp van bijna elke hout, bij voorkeur gerecycled, hardhout doet knippen en vlotte beter.Ooit maakte ik een 15-inch hoog en 2" dik, ik heb ook sommige gewoon 1" hoog, zeer populair op onze ambachtelijke kraam.Stap
Een perfecte presentatie doos maken voor een perfecte Gift (met inbegrip van de dingen die Martha Stewart vergeet te vertellen!)

Een perfecte presentatie doos maken voor een perfecte Gift (met inbegrip van de dingen die Martha Stewart vergeet te vertellen!)

Hebt u ooit iets zo cool gemaakt voor iemand die je wist dat je kon niet gewoon stok in een gewatteerde envelop en uit het schip naar hen?ik gewandeld van Breckenridge naar Aspen met mijn dan 14 maanden oude op mijn rug in eind augustus van 2015. Ik
Maken van een hardhouten vloer die eruit 3D van uw eigen bomen ziet

Maken van een hardhouten vloer die eruit 3D van uw eigen bomen ziet

ik heb veel logs gesneden door de jaren heen en ik ben altijd onder de indruk van hoe mooi sommige van het hout ziet er binnen geweest. Ik heb altijd afgevraagd dat als er niet iets wat ik kon doen met het naast branden voor brandhout. Maar hoe kun j
Hoe 3D printen in huizen en kantoren om veiliger te maken, door het bouwen van een behuizing die Filters gassen en zwevende deeltjes

Hoe 3D printen in huizen en kantoren om veiliger te maken, door het bouwen van een behuizing die Filters gassen en zwevende deeltjes

Mijn doel met dit project was om het maken van 3D printen in kleine huizen en kantoren gelegen in een stedelijke omgeving met geen speciale workshop veiliger, omdat 3D printen gaat om mogelijke gezondheidsrisico's. Dit zal dus een instructie over het
Hoe te bouwen van een zeilboot die is veel goedkoper dan retail ones.

Hoe te bouwen van een zeilboot die is veel goedkoper dan retail ones.

Waarschuwing: het dragen van beschermende uitrusting te allen tijde. HANDSCHOENEN, LAARZEN, EN BIJ HET SCHILDEREN VAN EEN GASMASKER. PROBEER NIET OM DIT OP DE ZEE OF IN DIEP WATER VAREN ZONDER EEN ZWEMVEST. Deze boot is gemaakt voor rustiger water en
Hoe het bouwen van een klok die de tijd op de muur projecten

Hoe het bouwen van een klok die de tijd op de muur projecten

dit Instructable toont u hoe te bouwen van een projector klok. Dit apparaat kunt u projecttijd op de muur. Op basis van een kleine LCD alarmklok (niet te klein, in plaats daarvan, zult u kunnen aan het project en te werken aan het), dit is een goede
Handschoenen die bestuurt een robot door het bewegen van je vingers draadloze

Handschoenen die bestuurt een robot door het bewegen van je vingers draadloze

Wij hebben een een robot is gecontroleerd draadloos met behulp van onze vingers om te rijden... We gebruikten twee arduino kits... één aan onze kant... en één op de robot... flexibele sensoren gebruikten we op onze vingers... flexibele sensoren is zo
Maken van een Dr die TARDIS Tea Party hoed

Maken van een Dr die TARDIS Tea Party hoed

In dit instructable leert u hoe maak je een Dr die TARDIS hoedGereedschap hiervoor:Laser CutterVinyl CutterArduinoZandstraaltoestelIk maakte het op TechShop. Kijk op TechShop hier.Gelieve te controleren mijn andere instructable (Coming Soon) voor inf
Bouwen van een apparaat die clips aan je riem en bijgehouden hoeveel tijd u binnen en buiten besteedt

Bouwen van een apparaat die clips aan je riem en bijgehouden hoeveel tijd u binnen en buiten besteedt

ons doel in deze stapsgewijze instructable is het bouwen van een apparaat kunt u illustraties aan uw riem en dragen gedurende de dag.  Dit apparaat zal het loggen van gegevens dat wanneer gedownload naar een back-endserver-systeem, zullen een verslag
Repareren van een deur die gesloten zal niet blijven

Repareren van een deur die gesloten zal niet blijven

het appartement dat we leven in is meer dan 100 jaar oud, dus het heeft sommige kwesties. De deur tussen de twee slaapkamers (we hebben een vreemde lay-out) had sommige problematiek vorig jaar en het zou vasthouden, nu is het zo ver van het kozijn da