Tooleyの工房

役に立つ技術製作中?

大学のレポートを機械に書かせる方法

おはようございます。管理人です。
管理人は大学生なんですが、大学のレポートをどうにかしてサボりたいです。
機械でそんなことができたら最高ですよね?

てな訳で、やっていきます。
とりあえずgoogle colabを開きます。
次にこんな感じで書いてみます。

(ダウンロードにだいたい10分くらいかかるんでカップ麺でも食べながら待ちましょう)
あとは順に実行するだけです。めちゃ簡単ですね〜。

ちなみにいくつか実行してみるとこんな感じになりました。
入力
情報工学とは何か」

出力
「応用的な分析・評価技術としての数学の意味と可能性です。今日の学術誌では、基礎数学であり、数学的方法論を構成するのは数学的な数理最適化定理、「一般化定理、例えば、確率的な推論モデルでは、確率的な推論に従いますが、計算機科学では、計算機に直接適用することはできません。」といったような、この分野への応用が必要である。
計算理論についての理解の助けとなる論文としては、『"Magazine"』 (1998) が挙げられる。数学的方法論から独立してプログラムを記述できる(そのため、プログラマ、あるいはプログラマーは数学的方法論に基づいて実行します。)。この手法は、一般的であれば、単なる数式プログラムやプログラムの型の説明に限定されませんが、しかるにそれらに見られたように、プログラムの数学的記述とプログラムの関数に関する説明に限定されないのです。
1999年に発表された『Tespready+ (1999)』 ("Tespready") では、この"Tespready"という語が含意文字となっている。
2000年の「数学的関数計算による最適化定理の考察」の第3版には「"Executablychainments"」が含まれているが、これは「関数の最適化の定理」であった。さらに2002年の「"Semanticus"」という訳書を含めて、この用語はより広く使われるようになった。2004年の『"Tespready+"』と2007年の『"Tespready+"』は、別々に述べたが、この言葉は「関数の最適化の定理」の訳語として使われている。
(数学的方法論と関数論は、多くの異なる学問、アプローチ、または問題が存在することに注意する)これらも、関数解析学が定義した重要性から、別個の言葉として使われたのかもしれない。例えば、最適化定理のような「関数論の言葉」とは違う「関数についての関数」を言う言葉は、それらは「値が与えられたときに最適化され、関数に適用された方法によって導かれたか」であり、それらが関数に適用されたということではないのである。
しかしながら、「"Labaefbeld"」という用語は、その一般概念の言葉、あるいは関数に関する特別な用語であると、そう呼ぶ人々がいる。それらの用語は、一般的な意味とはまったく異なるものである。しかしながら、例えば例えば「"formula_7"」とは「ある特定の関数の値を変える」という意味であり、「"formula_12"」という用語は、「ある特定の関数の値を変える」という意味である。「"formula_14"」とは「関数の最適化条件を満たすこと」であり(「関数とは何のための関数か」を表すために用いられる)、「"formula_15"」とは「関数の最適化条件を必要としない」という意味である。この用語は、一般的な意味と異なり、それらの用語は「計算が完了したときに計算できる値を変える」という意味に変わったが、この用語を定義する時の基本的な定義では、「関数は、値が与えられたときに最も大きな値の関数であるとは限らない」という意味で使われている。これは、ある値が与えられていても、それ以外の可能性のある関数は、その値が与えられたときにほとんど意味がなくなるという意味で、その用語を定義する時、一般的に使われる用語で使用されている「制約」とも関連する言葉である。」



。。。。。。
めっちゃ「っぽい」じゃん!!!!!!!

正直期待した以上でした。皆さん、バシバシ使って大学を楽に卒業しましょう。

では、また。

おとわっかを作る方法

みなさんこんばんは。管理人のtooleyです。今回はおとわっかを作る方法を紹介していきます。

特に有名なあの踊りを画像一枚で作れる方法です。ではいきましょう!

まずは画像を用意しましょう。256*256のものだと良いです。拡張子はなんでも良いでしょうが、jpgとかpngとかの代表的な拡張子だとエラーが起きにくいかもしれません。

あとはこのモーションビデオを作りましょう。これは自分の顔で撮りましょう。自分の顔にすることでいろんな表情が作れて面白いですよ。
これも大きさは256*256にしましょう。

そうしたらこちらのサイトにアクセスしましょう。(google accountが必要なので作っていない方は作ってくださいね)

Google Colab

こちらにアクセスするとこんな画面が表示されるかと思います:

そうしたら左上の再生ボタン(実行ボタン)を押しましょう。macの方はセルをクリックしてcommand + Rでもokです。
すると許可をとるのが出てきますので許可して進みます。
そうしたら二つ目のセルの左上のボタンをクリックしてみます。するとこんな画面が表示されるかと思います。

この画面の左上のところに音わっかのうごきをさせたい画像を、左下のとこに顔のビデオをアップロードしましょう。
そしたらgenerateをクリック、数分待ちます。
すると顔と全く同じ動きをした画像のビデオができます!
みなさん、ぜひやってみてください。

ちなみにニコニコにデモ動画を上げてありますのでこっちもみてみてくださいね

では、また。

PDFの図表をGoogle Spread Sheetにpythonに書き込ませる

皆さんこんにちは。管理人のTooleyです。
今回はPythonだけ使ってPDFの図表をGoogle Spread Sheetに書き込むのを自動化してみます。
これをそっくりそのまままねると多分エラー起こると思うので参考程度にみてくださいね。
じゃあ、やりましょう。
やることはGoogle APIの設定、SpreadSheetの設定、GoogleDriveアプリ版のダウンロード,ファイルの値の設定です。
GoogleAPIの設定についてはこちらの方が非常に丁寧に解説しているので参考にしてください。
Pythonでスプレッドシートからデータを読み込むのところから上のとこは一通りやりましょう。
www.twilio.com

ではgoogleスプレッドシートのidを獲得しましょう。
Spreadsheetのファイルの真ん中のとこ(リンクの/d/から/editのとこ)をクリックするとちょうどよく指定できるんでコピーしておきましょう。
そしたらGoogle Driveのアプリ版をインストールしてみましょう。
www.google.com
できたらいよいよプログラミングです!以下のコマンドをコマンドプロンプトで一個一個打ち込みましょう。ちなみにpythonは元々インストールしてある前提です。

pip install tabula-py
pip install schedule
pip install gspread
pip install oauth2client
pip install pandas

ではpythonファイルを書きます。とりあえずサクッとこんな感じに描いてみました。

import pandas as pd 
import tabula
import gspread
from google.oauth2.service_account import Credentials
from gspread_dataframe import set_with_dataframe
import glob
import os
import datetime
import schedule
import time
import time
import os
import sys
files = glob.glob("Google Driveの保存したいファイルがある場所のパス*.pdf")
scope = ['https://www.googleapis.com/auth/spreadsheets','https://www.googleapis.com/auth/drive']
credentials = Credentials.from_service_account_file("JSONファイルのパス", scopes=scope)
SPREADSHEET_KEY = 'スプレッドシートのキー'
gc = gspread.authorize(credentials)
workbook = gc.open_by_key(SPREADSHEET_KEY)
worksheets = workbook.worksheets()

for file in files:
    dfs = tabula.read_pdf(file, stream=True, pages='all')
    filename = os.path.splitext(os.path.basename(os.path.abspath(file)))[0]
    for df in dfs:
        try:
            worksheet = workbook.add_worksheet(title=filename + "のデータ",rows=str(df.shape[0] + 1),cols=str(df.shape[1] + 1))
            set_with_dataframe(worksheet, df, resize=False, include_index = True)
        except:
            print()

こんな感じです。楽しんでいただけたら管理人としても嬉しいです。

ではまた。