表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
Pythonに「なろう系タイトルジェネレータ」を移植し、さらにいろんなツールを開発してみる物語  作者: 超プリン体
第一章 なろう系タイトルジェネレータを移植する
7/20

第七話 キーワードをファイルから読み込めるようにしてみる ~生まれ変わったら剣豪の中心でお兄ちゃん冷たい

フレ登録、ブクマ、ポイント、ご質問などお気軽にどうぞ。



なおコードの左に全角スペースが2個入っている所が、実行時にエラーになる場合は、Tabに変更して実行してください。


2022.02.06 コード中のtabがそのままになっていたので、全角空白2つに変更しておきました。すみません。

 みなさんこんにちは。なろう系タイトルジェネレータ開発の第七話です。


 第六話では、大量のキーワードを登録して、そこそこ自由奔放なタイトルを出力できるようにまで、してみました。ただ、ソースコードをいじらないと、キーワードが登録でないので、使い勝手がすごく悪いし、今後の機能拡張も、ものすごく大変になりそうという気がしています。


 そこで今回は、キーワードをテキストファイルに保存しておいて、Pythonのコードでそれを読み込み、名前の自動生成に使えるようにしてみることにしました。


まず、そのコードがこちらになります。


(コードその1 ここから)

# -*- coding: utf-8 -*-

import tkinter

import random


use_encode='shift-jis' #shift-jis or utf-8


with open('word_list01.txt',mode="rt",encoding=use_encode) as f:

  read_data= list(f)

list_word=[] #配列の宣言

for i in read_data:

  list_word.append(i.replace('\n',''))


n_word=len(list_word)


#ウインドウ設定

tk=tkinter.Tk()

tk.title(u"なろう系タイトルジェネレータ")

tk.minsize(480,200)

#ウインドウ表示

win=tkinter.Canvas(bg="black",width=480,height=200)

win.place(x=0,y=0)

btn_quit = tkinter.Button(tk, text='終了')

btn_quit.place(x=130, y=80)

btn_create = tkinter.Button(tk, text='自動作成')

btn_create.place(x=50, y=80)

txt_title=tkinter.Label(text=u"ここにランダムで作成したタイトルが表示されます。")

txt_title.place(x=0,y=0)


def display_title():


  title_str = ""


  for i in range(0, random.randint(3,9)):

    title_str=title_str+list_word[random.randint(1,n_word)-1]


  txt_title["text"]=title_str

  print(title_str)


btn_create["command"]=display_title


def destroy_tk():

  tk.destroy()

btn_quit["command"]=destroy_tk


tk.mainloop()

(コードその1 ここまで)


 比較的上の方にある、「with open('word_list01.txt'」、という所で、読み込むファイルの名前を設定しています。ですので、メモ帳などでword_list01.txtを、実行フォルダに自分で作っておくと、そのファイルがキーワードとして読み込まれ、タイトルの自動生成に使われることになります。


 例えば、下の画像のように、1行ごとに、あ、い、う、などの文字を書いたファイルを読み込ませると……。


挿絵(By みてみん)


 下の画像のように、謎の言葉を自動生成させることもできます(笑)。


挿絵(By みてみん)


 そして最後に、前回はコード内に埋め込まれていたキーワードのリストを、ファイルに自動出力するためのコードを掲載しておきますね。下のコードをそのまま実行すれば、「list_word」という配列変数に登録されたキーワードが、「word_list01.txt」というファイルに、自動で出力されます。これを読み込ませて、自動生成させると、前回のコードと同じ結果が得られます。


 ※既存のword_list01.txtは上書きされてしまいますので、必要ならword_list01.txtのコピーをとってから、実行してください。



(コードその2 ここから)

# -*- coding: utf-8 -*-


#listをファイル出力する


list_word=[

"ですし","じゃない?","ねえ、","いいですか?","したかった","守って","どうでしょう?","負けない",

"ようこそ","でござる","ないですか?","あげてください","お楽しみください","だからね!","です","してる?"

"頂戴","ちょうだい","いいと思うよ?","した件","怒らないでよ","美味しいです","大嫌い","しないで","教えてね",

"のせて","つまらない","だいじょうぶ","伝えたい"

,

"天国","地獄","エンジェル"

,

"今夜","抱きしめて","映画のような","戻れない","もう一度","伝えたい","止めて","忘れないで",

"寄りそう","大胆に","心を","強く","あふれる","目隠し","そっと","破って","シャワー","都会",

"浴びて","はみ出した","夢のように","小さく","震えて","ヒール","ファッション雑誌","恋の","輝いて","下着"

,

"バニーちゃん","アンノ","ミコン","ニュートン","シュレディンガー","アインシュタイン","シェリー","ジャック",

"ストーン","アックス","トビー","トム","シュタインズ・"

,

"出会い","別れ","始まり","終り","始まる","日"


,

"もし","だったら","オンライン","RPG","ダンジョン","生まれ変わったら","ときどき","いろいろと","っ子","日々",

"人生","早見表","シチュエーション","結果","した場合","するとこうなる","ファンタジー","物語","大きくなったら",

"理由","妄想","と","の家","になります","祝福を","でした","すぎ","にして","なれど","なんていらない",

"していく","スタイル","もしもどこかで"

,

"ゲーム","プレイ","人生ゲーム","レース","大会"


,

"僕の","僕が","私の","私が","あなたの","あなたが","僕","私","あなた","あいつ"

,

"かわいい","痛い","終らない","のんびり"

"強い","甘い","七つの","知らない"


,

"記す","あがなう","問われる","本気出す","焼かれる","焼かれた","叫ぶ","叫べ","叫んだ",

"された","した","壊された","奪われた","とらわれた",

"走る","死んだ","連なる","したい","行く","えがいた","届く","届け","包みこめ","抱きしめる"



,

"瓶詰め","脳内","ランダム","晒す","一切ナシ","大人の","死亡フラグ","砲","機械",

"露骨な","漬け","の刃","みたいな","感じの","的な","燃え尽きた","手違い","誰かに",

"誰かの","例の","の上で","の下で","の中心で","プレ","の妹","オーバー","のいない",

"ブルーな","お","み","トレス","トラン","絞り","トップ","ガン","突然に","瞬間とき","な"



,

"ホラー","奇怪","不死者","残酷","残虐","怪談","怪","異形","オカルト","アングラ",

"カルト","地下","都市伝説","石仏","儀式","埋葬","怪奇","殺戮","殺害","殺人",

"霊","の書","チャネリング","チャネラー","神隠し","神隠れ"

,

"ハザード","パンデミック","汚染","流出","漏洩","浸食","侵食"

,

"セブン","ビート","ユーロ","レイジ"

,

"コーラ","サイダー","ラムネ","すかっと","レモン","サワー","マスカット"

,

"祭り","越え","剣豪"

,

"風見鶏","八方"

,

"デスルーラ"

,

"コンピュータ","スイッチ","マシン","ハード"

,

"電脳世界","電脳","シミュレーション","人工","AI","人工知能","バーチャル",

"ニューロ","ニューロン","ニューラル","プログラム","ソフト","テスト","チューリング",

"アルゴリズム","領域"

,

"ブレイン","ジャック","ハック","チート","バグ","ウィルス","アタック","罠",

"裏切り","反逆","革命","仮面","ブレイク","アンチ","アン","ジェイル","チェーン","ブロック"

,

"ノワール","暗殺者","死神","殺戮","殺される","監禁","調教"

,

"ハンドル","アクセル","ブレーキ","ドライブ","モーター","トルク",

"ニュートラル","フルアクセル","フルブレーキ","ワイパー","ハザードランプ",

"バックミラー","サイドミラー"

,

"時間","電子","量子","アニーリング","時計の針","未来の","天体"

,

"白い","白の","黒い","黒の","赤い","赤の","青い","青の","緑の","蒼い"

,

"本当の","後悔","紡ぐ","お手伝い","要素","適正度","神様","結晶",

"ラジオ","図書","ホワイト","必死","入門","似合わない","道のり","いつまでも","祈り"

,


"スピリチュアル","瞑想","霊界","呪いの","サイン","天使","悪魔","言霊","霊感",

"幻視","超能力","サイコパス","霊の","亡霊","サブリミナル","第六巻","パワー"

,

"メビウス","ウロボロス","ラプラス"

,

"スマイル","切り開け","走れ","笑顔","マイフレンド"


"ほのぼの","ハッピーエンド","うたた寝","夢みる","ぎゅっと","抱きしめ","小さな","注意報",

"おもちゃの","わんこ","優しい","もえる",

"大人になったら","ときめき","キュンと","君のハート","メモリアル","幸せに","ハートの",

"陽射し","ほんわか","カタチ","初めての","お兄ちゃん","オトナ","妹系","恥じらい","こと","夢"

,

"苦手な","腹黒","ニート","へっぽこ"

,

"エログロ","黒歴史","~注意","ツンデレ","絶対に","草はえる","ダイナマイト","特殊",

"過激","闇","奪取","神","死守","権化","完全","破壊","自慢の","非常識",

"切れ味","リアル","暗黒","ギガパスカル","早すぎた","神速","変貌","超絶",

"完全粉砕","ゼロ","オーバー","満載","大","超","なんでも","レイン","バトラー",

"激しい","激しく","限界の","フルパワー"

,

"響く","奏でる","歌う"

,

"キラキラ","素敵","素敵な","散りばめ","乱舞","魅力","魅惑","光る","ドキドキ",

"輝く","トロン","眩しい","花火","スター","ラッキー","ジュエルな","星空","天使の",

"ヴェール","ゆらめく","ドレスを","輝き","喜びの","水着"

,

"錆びた"

,

"恋愛","大好きだから","愛していると","恋した","一緒に","君に","無関心","夢中","結婚",

"婚活","好き","ゆれる","愛しい","一目ぼれ"

,

"欲","もらえる","ほしい"

,

"悲哀","切ない","人形","少女","片思い","崩壊","メモリー","存亡","嫉妬","眩暈",

"モノクローム","セピア","悲鳴","暗闇","思い出","夕暮れ","琥珀色の","涙"

,

"謎","隠された","忘れた頃に"

,

"身体","腹筋","股関節","瞳"

,

"味わう","おやつ","3分間で","ゆっくり","3時の","味わい"

,

"お色気","彼女","あふれ出す","満開","咲く","咲き誇る","メイド",

"染まる","咲き乱れる","生","いけない","お注射","あの娘と","乱れ咲く",

"パラダイス","セクシー","百合"

,

"生産","工場","量産型","量産機","執筆","裁縫","栽培","養殖",

"培養","小説","タイトル","ダイアモンド","クリスタル","宝石","翡翠"

,

"犬","ハムスター","猫","クマムシ","魔法犬","魔法猫","カタツムリ","プランクトン",

"かもめ","白鳥","虎","狼","ライオン","カラス","ハゲタカ","鷲","鷹","熱帯魚","うさぎ"

,

"ハーレム","薄い本","セクハラ","甘い","ちゅっちゅ","性的に"

,

"日常","生活","親子","兄弟","兄妹","トイレ","家","保険金","アルバイト",

"毎日","ライフ","日々","隣の","町外れの","あさっての","明日の","昨日の",

"今日の","満員電車"

,

"冒険","戦闘力","勇者","バトル","仲間","リベンジ"

,

"ワンパン","神拳"

,


"朝の","夜の","昼の","夜明けの","太陽の","雨の","曇天の",

"雪の","嵐の","霧の","春の","夏の","真夏の","秋の","冬の","真冬の"

"稲妻の","落雷の","時の","時空の","サマー","ウインター","オータム","スプリング",

"暁の","夕暮れの","薄暮の","オーロラ"

,

"風の","水の","土の","地の","火の","木の","天の","冥王の","海王の",

"鋼の","鉛の","弾丸の","空の","大地の","紅蓮の","妖艶の","光の","闇の",

"白銀の","灼熱の","忘我の","太古の"

,


"旅","航海記","世界","航海","船上","海","大陸","谷","山","城",

"町","村","森の","湖の","海底","火山","洞窟","沼","林","草原",

"ゲート","レイク","ランド","キャッスル","フォレスト","無人島","神殿","チケット"

,

"ツンドラ","サファリ","ステップ","ジャングル"

,

"畑","ブルーベリー"

,

"街","街角","路地","空地","オフィス街","摩天楼","水族館","動物園",

"公園","図書館","タウン","タワー","塔","門","ゲート"

,

"奇書","絵画","音楽","曲","写本","死海写本","アルバム","コーダ",

"コード","トランス","レイヴ","イズム","マーチ","協奏曲","狂想曲","葬送曲",

"アート","ミュージック","サウンド","ブック","ノート","メモ","記録","の書","の本",

"ピカソ","ルノワール","ラッセン"

,

"王家","庭師","王族","消防士","王子","王女様","家庭教師","ガーディアン",

"ハッカー","ホワイトハッカー","裁縫師","盗賊","ハンター","キング","クイーン",

"無職","農民","賢者","女王","戦士","ウォーリア","パイロット","ミュージシャン"

,

"王家の","庭師の","王族の","消防の","王子の","王女の","家庭教師の",

"ガーディアンズ・","ハッカーズ・","ホワイトハッカーズ・","裁縫師の","盗賊の","ハンターズ・",

"キングス・","クイーンズ・","無職の","農民の","賢者の","女王の","戦士の","ウォリアーズ"

,

"盾","拳","剣","ナイフ","アーム","ソード","指輪","リング"

,

"エルフ","蛮族","ドワーフ","ゴーレム","精霊","オーク","ゴブリン","サキュバス","族","レイス"

,


"魔族","ラスボス","魔王","不死者","幽霊","モンスター"

,

"異世界","能力","マスター","守護者","仮想世界","テクノロジー","ワールド","人々"

,

"魔法","変身","召喚","転生","魔法師","僧侶","魔法使い","復活","蘇生",

"マジック","サウンド魔法"

,

"倒せない","イケメン","妹","ヒロイン","ヒーロー","ペット","美少女",

"旦那","嫁","女子高生","チキン","最近流行の","娘","闘う","特徴","最強",

"最強の","空前絶後の","機械","少女","覇者","氷雪の","放浪の","流浪の",

"サバイバル","平凡な","未開の","社畜","侵略の","浸食の","暴虐の","不死の",

"サイレント","懺悔の","後悔の","神速の","大地の"

,

"ミッション","懸賞金","報酬","クエスト"

,

"伝説","聖杯","神話","戦争","王","国","記","戦記","レジェンド","ストーリー",

"奇譚","冒険譚","手記"

,

"国際","国家","ドキュメント","支配","領地","領土","王立","ユートピア","デストピア"

,

"墜落","事故","死亡","アクシデント"

,

"症候群","病","こじらせた","病","薬","診断","お薬","ワクチン"

,

"銀河の","惑星の","流星の","火星の","月の","木星の","土星の",

"冥王星の","天王星の","ジュピター","マルス","プルート","宇宙","流れ星","金星の",

"ビーナス","ムーン"

,

"ゲーム","スキル","チート","リセット","ボタン","8bitの","8bit","オートラン",

"コマンド","ジャンプ","ダッシュ","便利ボタン","ポーズ","持ち上げ","地図"

"フラグ","プレイ時間","キャラの声","ボス専用","ライフゲージ","キャラクターメイキング",

"性格","性別","名前","スカウト","エフェクト","ポーズボタン","経験値",

"最大レベル","熟練度","上限値","職業","スキル","パネル","転職","転生",

"モンスター","レベル","武器","装飾品","初期装備","素手","防具"

,


"熱い","暑い","冷たい","寒い","苦しい","悲しい","楽しい","気持ちいい"

  ]


with open('word_list01.txt','w') as f:

  for d in list_word:

    f.write("%s\n" %d)


(コードその2 ここまで)


 さて、ちゃんとword_list01.txtはできたでしょうか。できたら、「コードその1」で読み込んでみて、自動生成できるか試してみてください。


 今回はここまでです。次回は「より自然なタイトルを作れるように改善する」、をお送りする予定です。一応案はあるので、順調にいけばあまり苦労せずに完成する予定ですけど、順調でなかった場合、更新までに少し時間がかかるかもしれません(汗。


では次回またお会いしましょう。

評価をするにはログインしてください。
この作品をシェア
Twitter LINEで送る
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ