Last active
August 17, 2018 04:33
-
-
Save kawasima/9205224 to your computer and use it in GitHub Desktop.
キラキラネームの氏名を自動生成します。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(require '[clojure.java.io :as io] | |
'[clojure.string :as string] | |
'[net.cgrand.enlive-html :as html] ) | |
(use '[incanter core io datasets]) | |
;; サイトに負荷かかるので、頻繁に実行しないこと | |
(defn create-kira-name-db [] | |
(with-open [wtr (io/writer "kira-names.txt")] | |
(let [furigana-tbl (html/select | |
(html/html-resource | |
(io/reader "http://dqname.jp/" :encoding "euc-jp")) | |
[:table (html/has [:> :tr :> :td :> :font (html/text-pred #(= % "ふりがなから調べる"))])])] | |
(->> (for [a-tag (html/select furigana-tbl [:a])] | |
(let [page (html/html-resource (io/reader (str "http://dqname.jp/" (get-in a-tag [:attrs :href])) :encoding "euc-jp")) | |
popular-name-tbl (html/select page | |
[:table (html/has [:> :tr :> :td :> :font (html/text-pred #(= % "DQN度ランキング"))])])] | |
(map :content (html/select popular-name-tbl [(html/attr-starts :href "index.php?md=view")])))) | |
(flatten) | |
(map #(-> % | |
(.replace "(" ",") | |
(.replace ")" ""))) | |
(map #(.write wtr (str % "\r\n"))) | |
doall)))) | |
(defn get-sei [] | |
(let [accum (reductions #(update-in %2 [:number] + (:number %1)) (:rows data)) | |
index (rand-int (:number (last accum)))] | |
(loop [x (first accum) r (rest accum)] | |
(if (> (:number x) index) | |
x | |
(recur (first r) (rest r)))))) | |
(defn generate-kira-name [n] | |
(with-open [rdr (io/reader "kira-names.txt")] | |
(let [s (->> (line-seq rdr) (map #(string/split % #",")) doall) | |
sei-db (read-dataset | |
(io/reader "http://www.ipc.shizuoka.ac.jp/~jjksiro/sei.csv" :encoding "MS932") | |
:header true)] | |
(repeatedly n | |
(fn [] | |
(let [nm (rand-nth s)] | |
(str (:sei (get-sei)) " " | |
(first nm) | |
" (" (last nm) ")"))))))) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
=> (create-kira-name-db) | |
=> (->> (generate-kira-name 50) | |
(map println) | |
doall) | |
高森 龍優美 (りゅみ) | |
佐藤 和明 (とあ) | |
城戸 夢舞愛 (むむあ) | |
前田 紅思 (もみじ) | |
佐野 をろち (をろち) | |
永井 芸者 (あきひさ) | |
松本 輝翔 (けんすけ) | |
檀原 苺愛 (べりーあ) | |
岡田 朔蘭鵬 (さくらんぼう) | |
竹ノ内 誇聡 (こあ) | |
山岡 美々姫洋子 (みみひめようこ) | |
森井 空愛元 (かあげん) | |
山田 博恋 (ばれん) | |
黒田 永久礼 (とわれ) | |
上田 望千里 (のすり) | |
森 芽翼 (めい) | |
佐藤 虹 (てぃあら) | |
坂本 桜 (ぴーち) | |
松元 心冨 (なごみ) | |
高橋 最速 (たくみ) | |
長野 依伽 (いく) | |
安沢 美望 (にゃも) | |
山下 靖野 (やや) | |
内田 湧汰流 (わたる) | |
山崎 幻の銀侍 (まぼろしのぎんじ) | |
武久 笑來里 (にこり) | |
石川 苺朗 (いちごろう) | |
寺田 桜心 (ろこ) | |
堀井 束颯 (つかさ) | |
加藤 友愛取 (けいじゅ) | |
小林 族 (やから) | |
木田 向日葵 (すみれ) | |
可知 月雫 (るな) | |
吉田 憂汰浪 (ゆうたろう) | |
飯島 恋萌 (れもん) | |
小川 光流 (ぴかりん) | |
竹田 針一 (はりいち) | |
小吹 乃夢 (のん) | |
滝田 翠芽永 (めろん) | |
荻原 恋愛 (れあん) | |
増田 夜舞凜 (やまりん) | |
南 鳳虎 (ぽこ) | |
高清水 遊女 (ゆめ) | |
中島 和茶魅 (ちゃみ) | |
多田 后音 (このん) | |
那須 乃愛琉 (のえる) | |
小山 皇伽 (おうが) | |
梅尾 桃月 (とるな) | |
赤羽 煮物 (にもの) | |
伊勢 今人 (いま) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
河原 明佳