ビジネスパーソン・ガジェット置場 empty lot for business

営業や仕事、それに伴う生活を便利に楽にするツール、ガジェットを作ります。既にあるツールも自分用にカスタマイズ。

pandasとtkinterでコメントを自動で作成するツール

今回は単語を自動で組み合わせてくれて、文章を作成してくれるツールです。コピペが可能なようにtkinterを使って表示させます。

例えばこんな状況で

例えばコメントなどで沢山文章を作らないきゃいけないけど、いちいち色々考えるのは面倒臭い。単語をいくつか絞ってその組み合わせを作れば一度に沢山の文章ができてしまうのでは。という状況で使えます。

 

実際に、「who    when    where    why    what    結果」という6種類の言葉をそれぞれ5個ずつ考えたとします。こんな感じで。

これで全通りの組み合わせで文章を作ると15626通りの文章ができてしまいます。そして自分で組み合わせると面倒なので、そこはpythonに任せてしまいます。

 

 

youtu.be

 

このガジェットでできることはこちら

  • エクセルの表に単語をあらかじめ入れておけば無限に作れる文章が増やせます。
  • 一度に1文作るように設定しています。
  • 列(who    when    where    why    what    結果)を増やしても対応するようにしています。
  • tkinterで表示しているのでできた文章をそのままコピーして貼り付けできます。

※自分はmacなのでautomaterでアプリケーションを作りそれをクリックすれば立ち上がるようにしています。Windowsでもexeファイルを作りクリックで起動できるようにしようとしたのですが、昨日失敗したのでまたやります。(Windowsずっと使ってなかったので立ち上がるだけでむっちゃ時間がかかりました。。)

 

評価(自己)

役立ち度  ★★★★(良し)
効率化   ★★★★(良し)
ミス防止  ★★★★(良し)
楽しさ   ★★★(平均)
操作    ★★★★(良し)

 

むっちゃ単純なツールですが、最初に単語を登録しておけば後は楽かな。

 

実行環境

使用環境    デスクトップ tkinter
使用言語    python
使用ライブラリ  pandas、numpy、tkinter

 

コード

import pandas as pd
import numpy as np
import sys
import tkinter as tk

# 文章を合成しテキストボックスに挿入するまで行う関数です def make_sentence(txt): df = pd.read_excel('文章合成.xlsx') row = df.shape[0] col = df.shape[1] words = [df.iloc[np.random.randint(0, row), i] for i in range(col)] comment = ''.join(words) txt.insert(tk.END, comment)
# テキストボックスに表示した文章を消す関数です。 def cancel(txt): txt.delete('1.0','end')
# tkinterでテキストボックスとボタンのGUIを作っています def main(): root = tk.Tk() root.title("文章合成") root.geometry("400x300") txt = tk.Text()
        # ボタンを押した時に関数を渡していますが引数が必要なのでlambdaにしています btn = tk.Button(root, text='文章作成', command=lambda:make_sentence(txt)) btn2 = tk.Button(root, text='キャンセル', command=lambda: cancel(txt)) txt.place(x=50, y=50, width=300, height=170) btn.place(x=125, y=250) btn2.place(x=225, y=250) root.mainloop() if __name__ == '__main__': main()