{"id":1926,"date":"2014-02-22T03:39:42","date_gmt":"2014-02-21T18:39:42","guid":{"rendered":"http:\/\/pokosho.com\/b\/?p=1926"},"modified":"2015-12-03T00:45:16","modified_gmt":"2015-12-02T15:45:16","slug":"%e4%ba%ba%e5%b7%a5%e7%84%a1%e8%83%bd%e3%82%8f%e3%81%91%e3%81%a1%e3%81%ae%e5%ad%a6%e7%bf%92%e3%83%87%e3%83%bc%e3%82%bf%e3%82%92graphviz%e3%81%a7%e3%82%b0%e3%83%a9%e3%83%95%e3%81%ab%e3%81%97%e3%81%a6","status":"publish","type":"post","link":"https:\/\/pokosho.com\/b\/archives\/1926","title":{"rendered":"\u4eba\u5de5\u7121\u80fd\u308f\u3051\u3061\u306e\u5b66\u7fd2\u30c7\u30fc\u30bf\u3092Graphviz\u3067\u30b0\u30e9\u30d5\u306b\u3057\u3066\u307f\u305f"},"content":{"rendered":"<p>\u30b0\u30e9\u30d5\u3001\u9762\u767d\u3044\u3088\u306d\u3002\u68d2\u30b0\u30e9\u30d5\u3058\u3083\u306a\u304f\u3066<a href=\"http:\/\/ja.wikipedia.org\/wiki\/%E3%82%B0%E3%83%A9%E3%83%95%E7%90%86%E8%AB%96\">\u30b0\u30e9\u30d5<\/a>\u306e\u65b9\u3067\u3059\u3002<br \/>\n\u305d\u3046\u3001\u4e38\u3068\u7dda\u304c\u7e4b\u304c\u3063\u3066\u898b\u305f\u76ee\u3082\u5206\u304b\u308a\u3084\u3059\u304f\u9762\u767d\u3044\u30e4\u30c4\u3067\u3059\u3002<br \/>\n\u50d5\u306f\u7406\u7cfb\u306e\u5927\u5b66\u3092\u51fa\u3066\u3044\u307e\u3059\u304c\u3001\u60c5\u5831\u7cfb\u306b\u3057\u304b\u8208\u5473\u304c\u7121\u304b\u3063\u305f\u305f\u3081\u3001\u6570\u5b66\u306e\u77e5\u8b58\u306f\u9ad8\u6821\u30ec\u30d9\u30eb\u3067\u3059\u3002<br \/>\n\u96fb\u5b50\u3082\u6570\u5b66\u3082\u3061\u3083\u3093\u3068\u52c9\u5f37\u3057\u3066\u304a\u3051\u3070\u3088\u304b\u3063\u305f\u3088\u2026\u3002<\/p>\n<p>\u50d5\u306e\u4f5c\u3063\u305f<a href=\"http:\/\/pokosho.com\/b\/waketi\">\u4eba\u5de5\u7121\u80fd\u308f\u3051\u3061<\/a>\u304c\u5b66\u7fd2\u3057\u305f\u9023\u9396\u304c1300\u4e07\u306b\u5230\u9054\u3057\u307e\u3057\u305f\uff01<br \/>\n\u5727\u7e2e\u3055\u308c\u305f\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3092\u307f\u308b\u306894MB\u3002\u307e\u3060\u307e\u3060\u3001\u304a\u624b\u9803\u306a\u30b5\u30a4\u30ba\u3067\u3059\u3002<\/p>\n<p>\u30b0\u30e9\u30d5\u63cf\u753b\u30a2\u30d7\u30ea<a href=\"http:\/\/www.graphviz.org\/\">Graphviz<\/a>\u3092\u4f7f\u3063\u3066\u308f\u3051\u3061\u306e\u5b66\u7fd2\u3057\u305f\u30c7\u30fc\u30bf\u3092\u30b0\u30e9\u30d5\u306b\u3057\u3066\u307f\u3088\u3046\uff01<br \/>\n<em>Twitter\u306e\u307f\u3093\u306a\u304c\u3088\u304f\u4f7f\u3046\u8a00\u8449\u304c\u30b0\u30e9\u30d5\u306b\u73fe\u308c\u308b\u306f\u305a\uff1f<\/em><br \/>\n<!--more--><br \/>\nGraphviz\u306fdot\u3068\u3044\u3046\u5f62\u5f0f\u3067\u6e21\u3059\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u5f62\u5f0f\u3002<\/p>\n<pre>digraph g {\r\n  node [fontname=\"MSGOTHIC.TTC\"];\r\n  edge [fontname=\"MSGOTHIC.TTC\"];\r\n  \"A\"-&gt;\"B\";\r\n  \"B\"-&gt;\"C\";\r\n}<\/pre>\n<p>\u4f55\u3068\u304b\u3057\u3066\u308f\u3051\u3061\u306e\u30c7\u30fc\u30bf\u3092\u3053\u306e\u5f62\u5f0f\u306b\u6301\u3063\u3066\u884c\u304d\u307e\u3059\u3002<br \/>\n\u308f\u3051\u3061\u306eDB\u306fMySQL\u3092\u4f7f\u3063\u3066\u3044\u3066\u3001\u3053\u3093\u306a\u30c6\u30fc\u30d6\u30eb\u3067\u51fa\u6765\u3066\u3044\u307e\u3059\u3002<br \/>\n\u5358\u8a9e\u30683\u5358\u8a9e\u304b\u3089\u6210\u308b\u9023\u9396\u3067\u3059\u3002<\/p>\n<pre>mysql&gt; desc word;\r\n+------------+--------------+------+-----+---------+----------------+\r\n| Field      | Type         | Null | Key | Default | Extra          |\r\n+------------+--------------+------+-----+---------+----------------+\r\n| WORD_ID    | bigint(20)   | NO   | PRI | NULL    | auto_increment |\r\n| POS_ID     | bigint(20)   | YES  |     | NULL    |                |\r\n| word       | varchar(255) | YES  | MUL | NULL    |                |\r\n| WORD_COUNT | int(11)      | YES  |     | NULL    |                |\r\n| TIME       | int(11)      | YES  |     | NULL    |                |\r\n+------------+--------------+------+-----+---------+----------------+\r\n5 rows in set (0.00 sec)\r\n\r\nmysql&gt; desc chain;\r\n+----------+------------+------+-----+---------+----------------+\r\n| Field    | Type       | Null | Key | Default | Extra          |\r\n+----------+------------+------+-----+---------+----------------+\r\n| CHAIN_ID | bigint(20) | NO   | PRI | NULL    | auto_increment |\r\n| PREFIX01 | bigint(20) | YES  | MUL | NULL    |                |\r\n| PREFIX02 | bigint(20) | YES  | MUL | NULL    |                |\r\n| SUFFIX   | bigint(20) | YES  | MUL | NULL    |                |\r\n| START    | tinyint(1) | YES  |     | NULL    |                |\r\n+----------+------------+------+-----+---------+----------------+\r\n5 rows in set (0.00 sec)<\/pre>\n<p>\u307e\u305a\u306f\u3001\u30bf\u30d6\u533a\u5207\u308a\u3067\u51fa\u529b\u3057\u3066\u3002<br \/>\n\u50d5\u306f\u4e00\u6642\u7684\u306b\u51fa\u529b\u3057\u305f\u3088\u3001\u3068\u3044\u3046\u610f\u5473\u3067out\u3092\u4f7f\u3046\u7656\u304c\u3042\u308a\u307e\u3059\u3002\u30a2\u30a6\u30c8\uff01<br \/>\ntmp\u3001bak\u3001org\u306b\u6b21\u3050\u3001\u306a\u304b\u306a\u304b\u3044\u3044\u30cd\u30fc\u30df\u30f3\u30b0\u3060\u3068\u601d\u3046\u3093\u3060\u3051\u3069\u3001\u50d5\u3057\u304b\u4f7f\u3063\u3066\u308b\u4eba\u3092\u898b\u305f\u3053\u3068\u304c\u306a\u3044\u3002<\/p>\n<pre>select word1.word, word2.word, word3.word from chain \r\ninner join word word1 on word1.word_id = chain.prefix01\r\ninner join word word2 on word2.word_id = chain.prefix02\r\ninner join word word3 on word3.word_id = chain.suffix\r\nlimit 100000 INTO OUTFILE \"\/tmp\/out.tsv\" FIELDS TERMINATED BY '\\t';<\/pre>\n<p>\u826f\u3055\u305d\u3046\u3060\u3002<\/p>\n<pre>\u307f\t\u306a\u3044\t\u5834\u5408\r\n\u306a\u3044\t\u5834\u5408\t\u3001\r\n\u5834\u5408\t\u3001\t\u6012\u3089\r\n\u3001\t\u6012\u3089\t\u308c\r\n\u6012\u3089\t\u308c\t\u306a\u3044\r\n\u308c\t\u306a\u3044\t\u3088\u3046\r\n\u3088\u3046\t\u306b\t\u6b8b\u696d\r\n\u306b\t\u6b8b\u696d\t\u3057\r\n\u6b8b\u696d\t\u3057\t\u3066\u308b\r\n\u3066\u308b\t\u306e\u306b\t\u6642\u9593<\/pre>\n<p>\u3084\u3063\u3064\u3051\u30b9\u30af\u30ea\u30d7\u30c8\u3067\u5909\u63db\u3057\u3066\u307f\u307e\u3057\u305f\u3002\u305f\u307e\u306b\u306fpython\u3067\u3002<br \/>\n(\u4f7f\u3044\u6368\u3066\u3067\u3059\u3002\u3053\u3093\u306a\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u672c\u756a\u3067\u4f7f\u3063\u3061\u3083\u3060\u3081\u3067\u3059\u3088\uff01)<\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\r\n#!\/usr\/bin\/python\r\n# coding: UTF-8\r\nimport sys\r\n\r\nf = open(sys.argv&#x5B;1]);\r\n\r\nprint &quot;digraph g {&quot;\r\nprint &quot;  node &#x5B;fontname=i\\&quot;MSGOTHIC.TTC\\&quot;];&quot;\r\nprint &quot;  edge &#x5B;fontname=\\&quot;MSGOTHIC.TTC\\&quot;];&quot;\r\n\r\nline = f.readline()\r\nwhile line:\r\n        words = line.rstrip().split(&quot;\\t&quot;)\r\n        print &quot;  \\&quot;&quot; + words&#x5B;0] + &quot;\\&quot;-&gt;\\&quot;&quot; + words&#x5B;1] + &quot;\\&quot;;&quot;\r\n        print &quot;  \\&quot;&quot; + words&#x5B;1] + &quot;\\&quot;-&gt;\\&quot;&quot; + words&#x5B;2] + &quot;\\&quot;;&quot;\r\n        line = f.readline()\r\nf.close\r\n\r\nprint &quot;}&quot;\r\n<\/pre>\n<p>\u65e9\u901f\u98df\u308f\u305b\u308b\u3002<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\npython tsv2dot.py \/tmp\/out.tsv &gt; .\/out.tsv.dot\r\n<\/pre>\n<p>\u305d\u3057\u3066\u3001Graphviz\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u5b9f\u884c\u3057\u307e\u3059\u3002<br \/>\n-K\u3067\u3069\u3093\u306a\u30ec\u30a4\u30a2\u30a6\u30c8\u306b\u3059\u308b\u304b\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002<br \/>\n\u4eca\u56de\u306f\u653e\u5c04\u72b6\u306e\u30ec\u30a4\u30a2\u30a6\u30c8\u3067\u3042\u308btwopi\u306b\u3057\u3066\u307f\u305f\u3002<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nsudo yum install graphviz graphviz-gd\r\ndot -Ktwopi -Tpng out.tsv.dot -o g.png\r\n<\/pre>\n<p>\u305d\u3057\u3066\u2026\u3002<\/p>\n<p><a href=\"http:\/\/pokosho.com\/b\/wp-content\/uploads\/2014\/02\/g3.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1938\" src=\"http:\/\/pokosho.com\/b\/wp-content\/uploads\/2014\/02\/g3.png\" alt=\"g3\" width=\"400\" \/><\/a><br \/>\n<em>\u3053\u306e\u30ed\u30ea\u30b3\u30f3\u3069\u3082\u3081\uff01\uff01<\/em><br \/>\n\u53f3\u4e0a\u306b\u5b64\u7acb\u3057\u3066\u3044\u308b\u306e\u306f\u4f55\u3060\u308d\u3046\uff1f<\/p>\n<p><a href=\"http:\/\/pokosho.com\/b\/wp-content\/uploads\/2014\/02\/g4.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1939\" src=\"http:\/\/pokosho.com\/b\/wp-content\/uploads\/2014\/02\/g4.png\" alt=\"g4\" width=\"420\" \/><\/a><br \/>\n<strong>\u30af\u30bd\u30ef\u30ed\u30bf\uff57\uff57\uff57\uff57\uff57\uff57\uff57\uff57\uff57<\/strong><\/p>\n<p><a href=\"http:\/\/pokosho.com\/b\/wp-content\/uploads\/2014\/02\/g100.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1942\" src=\"http:\/\/pokosho.com\/b\/wp-content\/uploads\/2014\/02\/g100.png\" alt=\"g100\" width=\"400\" \/><\/a><br \/>\n100\u30b5\u30f3\u30d7\u30eb\u306e\u4f8b\u3002\u610f\u56f3\u3057\u305f\u7d50\u679c\u304c\u5f97\u3089\u308c\u305f\u3088\u3046\u306a\u2026\uff1f<\/p>\n<p>Graphviz\u304c\u3069\u3093\u306a\u3082\u3093\u304b\u304c\u308f\u304b\u3063\u3066\u3001\u306f\u306a\u307e\u308b\u3001\u3068\u3044\u3046\u3053\u3068\u3067\u3001\u304a\u3084\u3059\u307f\u306a\u3055\u3044\u3002<br \/>\n\u5f8c\u304b\u3089\u6c17\u3065\u3044\u305f\u3051\u3069\u3001\u5358\u7d14\u306b\u9023\u9396\u3092\u5b66\u7fd2\u3055\u305b\u308b\u3068\u91cd\u8907\u304c\u51fa\u308b\u306e\u3067\u7dda\u304c\u30c0\u30d6\u3063\u3061\u3083\u3063\u3066\u307e\u3059\u306d\u2026\u3002<\/p>\n<p>&lt;h3&gt;20151203&lt;\/h3&gt;<br \/>\n2200\u4e07 chains!<br \/>\nneologd\u30d1\u30ef\u30fc\u6050\u308b\u3079\u3057!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u30b0\u30e9\u30d5\u3001\u9762\u767d\u3044\u3088\u306d\u3002\u68d2\u30b0\u30e9\u30d5\u3058\u3083\u306a\u304f\u3066\u30b0\u30e9\u30d5\u306e\u65b9\u3067\u3059\u3002 \u305d\u3046\u3001\u4e38\u3068\u7dda\u304c\u7e4b\u304c\u3063\u3066\u898b\u305f\u76ee\u3082\u5206\u304b\u308a\u3084\u3059\u304f\u9762\u767d\u3044\u30e4\u30c4\u3067\u3059\u3002 \u50d5\u306f\u7406\u7cfb\u306e\u5927\u5b66\u3092\u51fa\u3066\u3044\u307e\u3059\u304c\u3001\u60c5\u5831\u7cfb\u306b\u3057\u304b\u8208\u5473\u304c\u7121\u304b\u3063\u305f\u305f\u3081\u3001\u6570\u5b66\u306e\u77e5\u8b58\u306f\u9ad8\u6821\u30ec\u30d9\u30eb\u3067\u3059\u3002 \u96fb\u5b50\u3082\u6570\u5b66\u3082 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1938,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[7],"tags":[],"class_list":["post-1926","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-program"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/pokosho.com\/b\/wp-json\/wp\/v2\/posts\/1926","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pokosho.com\/b\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pokosho.com\/b\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pokosho.com\/b\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pokosho.com\/b\/wp-json\/wp\/v2\/comments?post=1926"}],"version-history":[{"count":0,"href":"https:\/\/pokosho.com\/b\/wp-json\/wp\/v2\/posts\/1926\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pokosho.com\/b\/wp-json\/wp\/v2\/media\/1938"}],"wp:attachment":[{"href":"https:\/\/pokosho.com\/b\/wp-json\/wp\/v2\/media?parent=1926"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pokosho.com\/b\/wp-json\/wp\/v2\/categories?post=1926"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pokosho.com\/b\/wp-json\/wp\/v2\/tags?post=1926"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}