はじめに
コラージュ川柳がめちゃくちゃ好きで作りたいのだが、筆者は紙の新聞の契約をしていないため、Pythonとインターネットでやってみた。
データソース
「インターネットでスクレイピングして辞書を作ろうか、しかし文字数の処理がわからない…辞書さえ作れてしまえばあとは一瞬なのに…」と1年近く悩んでいたが、別件で形態素分析周りを調べていたところ、全ての問題を解決できる「単語感情極性対応表(著作者:東工大 高村教授)を発見した。素晴らしすぎる。
http://www.lr.pi.titech.ac.jp/%7Etakamura/pndic_ja.html
http://www.lr.pi.titech.ac.jp/~takamura/pubs/pn_ja.dic
43400語収録、よみがな、品詞付きである。素晴らしすぎる。
このリストをcsvにし、よみがなの文字数の列を追加したものをPythonで取り込む。
実装
import random
import pandas as pd
import numpy as np
df_dic = pd.read_csv('C:/Users/xxxxxxx/Desktop/kyokusei_240312.csv')
kami_shimo_option = df_dic[(df_dic["len"] == 5)]
naka_option = df_dic[(df_dic["len"] == 7)
kami = random.choices(kami_shimo_option['word'].tolist())
naka = random.choices(naka_option['word'].tolist())
shimo = random.choices(kami_shimo_option['word'].tolist())
print(kami + naka + shimo)
形容詞+品詞、名詞+助詞など、色々遊べる余地はある。
出力
['蓄電池', '無官の太夫', 'じんかくか']
['書下し', 'パーセンテージ', 'かんだちめ']
['仰ぎ見る', '門前払', '借受ける']
['てんかいち', '刃物三昧', '足ついで']
['たずねびと', 'はばかりながら', '但書']
['未解決', 'ハードボイルド', '三和音']
['うるしまけ', 'ストロンチウム', 'ノミネート']
['灰均し', 'サンクチュアリ', 'ぶんなげる']
['酒浸り', 'くいあらためる', 'サントニン']
['人いきれ', 'たいとうごめん', 'えんつづき']
['高御座', 'グルタミンさん', 'おどりでる']
良すぎる。
chatGPT(4.0)に聞いてみた
…だそうです。
感想
Pythonと辞書でやったからこそ、「高御座」「上達部」等の筆者の地頭とセンスからは絶対に出てこないワードを含んだセレンディピティ感あふれる謎川柳を生成することができた。とてもうれしい。