<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
  <title>klasifikace textu on JLA Data</title>
  <link>https://www.jla-data.net/tags/klasifikace-textu/</link>
  <description>Recent content in klasifikace textu on JLA Data</description>
  <generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<copyright>Jindra Lacko</copyright>
<lastBuildDate>Sat, 12 Jan 2019 00:00:00 +0000</lastBuildDate>

<atom:link href="https://www.jla-data.net/tags/klasifikace-textu/index.xml" rel="self" type="application/rss+xml" />


<item>
  <title>Dva Tomiové s odstupem času</title>
  <link>https://www.jla-data.net/cze/verifikace-dvou-tomiu/</link>
  <pubDate>Sat, 12 Jan 2019 00:00:00 +0000</pubDate>
  
<guid>https://www.jla-data.net/cze/verifikace-dvou-tomiu/</guid>
  <description>


&lt;p&gt;Když jsem začal &lt;a href=&#34;http://www.jla-data.net/cze/pribeh-dvou-tomiu/&#34;&gt;projekt o twitterové komunikaci pravého a falešného Tomia Okamury&lt;/a&gt;, tak jsem zpracoval jejich timeliny od “počátku světa” do 7. prosince 2018.&lt;/p&gt;
&lt;p&gt;Na těchto datech jsem vytvořil tři klasifikační modely, které různými technikami předvídaly “pravost” autora tweetu:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;rozhodovací strom nad tweetovými metadaty (&lt;code&gt;rpart&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;jednoduchou neuronku nad stejnými metadaty (&lt;code&gt;keras&lt;/code&gt;, respektive TensorFlow)&lt;/li&gt;
&lt;li&gt;sofistikovanější neuronku (bidirectional LSTM) nad slovy tweetů (opět &lt;code&gt;keras&lt;/code&gt; a TensorFlow)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Zatímco jsem psal své klasifikační modely, tak Tomiové nezaháleli, a produkovali nová data. Od 7. prosince ke dnešnímu dni vydali 106 nových tweetů, z toho 51 od pravého a 55 od falešného Okamury. Což je vcelku vyvážené rozdělení, a v souladu s mým pozorováním, že fejkový Tomio je o něco ukecanější, nežli ten pravý.&lt;/p&gt;
&lt;p&gt;Přišlo mi zajímavé použít nově vzniklé tweety jako verifikaci svých modelů, toto je můj výsledek:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jla-data.net/CZE/2019-01-12-dva-tomiove-s-odstupem-casu_files/figure-html/tomio-plot-1.png&#34; width=&#34;672&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Testovací vzorek nebyl velký, ale i přes to dosahly všechny tři klasifikační modely přesnost přes 95%. Což není špatné…&lt;/p&gt;
&lt;p&gt;Všechny tři výsledky jsou vcelku srovnatelné, a tak jsem se rozhodl za vítěze požadovat strom podle &lt;code&gt;rpart&lt;/code&gt;. Protože jeho fungování dokážu ze všech tří metod nejsnáze vysvětlit.&lt;/p&gt;
&lt;p&gt;Závěry, který si z projektu odnáším jsou že:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;klasifikace textu je zábavná, a jde dělat přesně&lt;/li&gt;
&lt;li&gt;Tomio Okamura je konzistentní a dobře předvídatelný&lt;/li&gt;
&lt;li&gt;i s malým Kašpárkem jde sehrát velké divadlo - respektive i jednoduchá technika se při dobré přípravě může výsledkem měřit s moderními AI krabičkami&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;Podkladové skripty jsou k dispozici na GitHubu: &lt;a href=&#34;https://github.com/jlacko/dos-tomios&#34; class=&#34;uri&#34;&gt;https://github.com/jlacko/dos-tomios&lt;/a&gt;.&lt;/p&gt;
</description>
  </item>
  
<item>
  <title>Dva Tomiové na jednom Twitteru</title>
  <link>https://www.jla-data.net/cze/pribeh-dvou-tomiu/</link>
  <pubDate>Fri, 07 Dec 2018 00:00:00 +0000</pubDate>
  
<guid>https://www.jla-data.net/cze/pribeh-dvou-tomiu/</guid>
  <description>


&lt;p&gt;Na českém Twitteru vystupují dva Tomiové Okamurové - jeden pravý, druhý falešný. Pro nás, lidi, nadané &lt;em&gt;přirozenou&lt;/em&gt; inteligencí, není těžké už z profilovky na první dobrou poznat, který z nich k nám z jakého účtu promlouvá.&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
&lt;img src=&#34;https://www.jla-data.net/CZE/2018-12-07-pribeh-dvou-tomiu_files/dos-tomios.png&#34; alt=&#34;dva Tomiové - pravý a falešný&#34; /&gt;
&lt;/p&gt;
&lt;p&gt;Přišlo mi ale zajímavé prozkoumat timeliny účtů &lt;a href=&#34;https://twitter.com/tomio_cz&#34;&gt;@tomio_cz&lt;/a&gt; a &lt;a href=&#34;https://twitter.com/tomio_okamura&#34;&gt;@Tomio_Okamura&lt;/a&gt; strojově, technikami &lt;em&gt;umělé&lt;/em&gt; inteligence.&lt;/p&gt;
&lt;p&gt;A tedy změřit a spočítat jak oba Tomiové pracují s jazykem, a navrhnout takový klasifikační algoritmus, který by jejich tweety rozdělil na hejty xenofobního politika a hlášky internetového vtipálka.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Veškerou práci jsem provedl v erku - stažení dat přes knihovnu &lt;a href=&#34;https://cran.r-project.org/web/packages/rtweet/&#34;&gt;rtweet&lt;/a&gt;, textové zpracování přes knihovnu &lt;a href=&#34;https://cran.r-project.org/web/packages/udpipe/&#34;&gt;udpipe&lt;/a&gt;, a zpracování rozhodovacího stromu přes knihovnu &lt;a href=&#34;https://cran.r-project.org/web/packages/rpart/&#34;&gt;rpart&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Prvotní stažení dat bylo jednoduché; obě timeliny mají dohromady přibližně 5 000 tweetů. Po rozbití na slova to dělá kolem 78 tisíc slov, to je rozsah zhruba čtyř diplomek (na VŠE klidně pěti). To už nějaká data jsou, ale stále dost málo na to aby se mi zafuněl notebook.&lt;/p&gt;
&lt;p&gt;Dalším krokem bylo posoudit volbu slov oběma účty; protože se liší celkové počty tweetů (falešný Tomio je o něco ukecanější) nebylo praktické srovnávat absolutní hodnoty, a soustředil jsem se proto na srovnání relativních četností - zmínek slova na 1 000 tweetů.&lt;/p&gt;
&lt;p&gt;Červená čára dělí čtverec četností na polovinu - napravo a dolů je více zmínek od pravého Tomia, nalevo a nahoru od falešného.&lt;/p&gt;
&lt;p&gt;Postupně jsem zhodnotil hlavní slovní druhy:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;vlastní jména&lt;/li&gt;
&lt;li&gt;podstatná jména&lt;/li&gt;
&lt;li&gt;přídavná jména&lt;/li&gt;
&lt;li&gt;slovesa&lt;/li&gt;
&lt;li&gt;příslovce&lt;/li&gt;
&lt;/ul&gt;
&lt;p align=&#34;center&#34;&gt;
&lt;img src=&#34;https://www.jla-data.net/CZE/2018-12-07-pribeh-dvou-tomiu_files/PROPN.png&#34; alt=&#34;vlastní jména&#34; /&gt;
&lt;/p&gt;
&lt;p&gt;Je vidět, že pravý Tomio mluví hodně (hodně hodně!) o sobě a o SPD. Falešný Tomio mluví častěji než pravý o Ovčáčkovi, Zemanovi a Babišovi (a o &lt;a href=&#34;https://twitter.com/blanikz&#34;&gt;Žížalovi&lt;/a&gt;, který mi mezi ty tři moc nezapadá).&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
&lt;img src=&#34;https://www.jla-data.net/CZE/2018-12-07-pribeh-dvou-tomiu_files/NOUN.png&#34; alt=&#34;podstatná jména&#34; /&gt;
&lt;/p&gt;
&lt;p&gt;Z podstatných jmen mluví pravý Tomio hodně o člověku (o lidech), o vládě a o migrantech (které falešný Tomio ignoruje). Strana, volba a rok jsou důleživé pro oba Tomie srovnatelně, falešný se zajímá více o pana prezidenta.&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
&lt;img src=&#34;https://www.jla-data.net/CZE/2018-12-07-pribeh-dvou-tomiu_files/ADJ.png&#34; alt=&#34;přídavná jména&#34; /&gt;
&lt;/p&gt;
&lt;p&gt;Z přídavných jmen je rozdíl v použití slov český, další a islámský; mimochodem - věděli jste, že pravý Tomio používá 4,26x častěji slovo &lt;em&gt;islámský&lt;/em&gt;, nežli slovo &lt;em&gt;dobrý&lt;/em&gt;?&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
&lt;img src=&#34;https://www.jla-data.net/CZE/2018-12-07-pribeh-dvou-tomiu_files/PRON.png&#34; alt=&#34;zájména&#34; /&gt;
&lt;/p&gt;
&lt;p&gt;Na zájménech je nejzajímavější, že je pravý Tomio prakticky nepoužívá. Občas zmíní zvratné &lt;em&gt;se&lt;/em&gt;, občas poukáže sám na sebe slovem &lt;em&gt;já&lt;/em&gt;, ale ve srovnání s falešným Tomiem je to o ničem.&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
&lt;img src=&#34;https://www.jla-data.net/CZE/2018-12-07-pribeh-dvou-tomiu_files/VERB.png&#34; alt=&#34;slovesa&#34; /&gt;
&lt;/p&gt;
&lt;p&gt;U sloves jsem musel, kvůli čitelnosti os, vypustit nejčastější &lt;em&gt;být&lt;/em&gt;. I pro něj ale platí, že se slovesy je to jako se zájmeny - pravému Tomiovi prakticky vypadly, zatímco falešný Tomio s nimi pracuje.&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
&lt;img src=&#34;https://www.jla-data.net/CZE/2018-12-07-pribeh-dvou-tomiu_files/ADV.png&#34; alt=&#34;příslovce&#34; /&gt;
&lt;/p&gt;
&lt;p&gt;U příslovcí se příběh opakuje. S výjimkou jediného - úderného, naléhavost budícího &lt;em&gt;dnes&lt;/em&gt; - jsou výsadou falešného Tomia.&lt;/p&gt;
&lt;p&gt;Toto vše si vykládám tím, že pravý Tomio se nepotřebuje vyjadřovat ve skutečných větách. Jako populistický předák si vystačí s hesly. Na co podnět, k čemu přísudek - když soukmenovci trpí?&lt;/p&gt;
&lt;p&gt;Falešný Tomio, který si z Tomia skutečného dělá legraci, nejspíše cítí potřebu se vyjadřovat jako člověk, a místo newspeaku používá češtinu.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Dalším krokem byla příprava dat pro klasifikaci. Na základě zjištění z analýzy jsem provedl lehký feature engineering - zaměříl jsem se na hlavní rozdíly, tedy odkazy na Youtube, sebepropagaci, použití sloves, zájmen a příslovcí a na sdílení cizích tweetů (retweety).&lt;/p&gt;
&lt;p&gt;Výstupem z klasifikace je vcelku jednoduchý rozhodovací strom:&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
&lt;img src=&#34;https://www.jla-data.net/CZE/2018-12-07-pribeh-dvou-tomiu_files/decision-tree.png&#34; alt=&#34;strom&#34; /&gt;
&lt;/p&gt;
&lt;p&gt;Strom má sedm úrovní, a dosahuje přesnosti klasifikace lehce přes 90%. Což je docela pěkné číslo.&lt;/p&gt;
&lt;p&gt;S trochou nadsázky lze pravidla stromu ještě více zobecnit:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;příspěvek, který odkazuje na YouTube, je od pravého Tomia&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;příspěvek, který zmiňuje SPD a není retweetem, je od pravého Tomia&lt;/li&gt;
&lt;li&gt;příspěvek o dvou a více větách je od falešného Tomia&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;retweet je od falešného Tomia&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;příspěvek, ze kterého vypadly zájména a příslovce, a který obsahuje maximálně dvě slovesa, je od pravého Tomia&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Při stejném vstupním souboru s 30 proměnnými, ale se sofistikovanějším klasifikačním nástrojem - knihovnou &lt;a href=&#34;https://keras.rstudio.com/&#34;&gt;Keras&lt;/a&gt;, respektive jejím backendem &lt;a href=&#34;https://www.tensorflow.org/&#34;&gt;TensorFlow&lt;/a&gt; - se dostanu na úspěšnost kolem 92%. Pravda, hůře interpretovatelnou nežli jednoduchý rpartový strom.&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
&lt;img src=&#34;https://www.jla-data.net/CZE/2018-12-07-pribeh-dvou-tomiu_files/keras.png&#34; alt=&#34;keras optimalizace&#34; /&gt;
&lt;/p&gt;
&lt;p&gt;Věřím tedy, že při větším počtu proměnných a se složitějším feature engineeringem bych se dostal na úspěšnost kolem 95%, kterou mám za horní mez takhle “malého” souboru dat.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Zdrojový kód podkládající moji analýzu přesahuje rozsah blogového příspěvku, ale je volně k dispozici na GitHubovém repozitáři &lt;a href=&#34;https://github.com/jlacko/dos-tomios&#34;&gt;jlacko/dos-tomios&lt;/a&gt;.&lt;/p&gt;
</description>
  </item>
  
</channel>
  </rss>