ChatGPT使ってみました!

最近話題のChatCPTを使ってみました。とても面白かったのでみなさんに是非使っていただきたいと思ったので、ブログに残していきます!

ChatGPTについて

  • ChatGPTってなに?
  • CgatGPTの始め方
  • AIの発達×学校はどうなるのだろう?

ChatGPTってなに?

ChatGPTは簡単に説明すると「とっても優れたチャットAI」です。

今回はChatGPTについての情報をChatGPTに聞いてみました。

ゆう

私はこれから、ChatGPTについての記事を書こうとしています。そこで、ChatGPTについて教えてください

ChatGPT

ChatGPTはOpenAIによって開発された大規模な自然言語処理モデルです。GPTとは「Generative Pre-trained Transformer」の略で、事前学習されたトランスフォーマーモデルを用いて、テキスト生成、文章分類、文章の質問応答、文章の要約などの自然言語処理タスクを実行できます。ChatGPTは、コミュニケーションエージェント、自動チャットボット、自動翻訳など、多岐にわたるアプリケーションで利用されています。

ゆう

もっと詳しく教えて

ChatGPT

ChatGPTは、自然言語処理の分野で最先端の技術の一つであるトランスフォーマーというニューラルネットワークを用いた言語モデルです。トランスフォーマーは、入力の前後関係を考慮することで文章の意味を理解し、文章の生成や分類などのタスクを行うことができます。

ChatGPTは、トランスフォーマーを使って、大量のテキストデータを事前に学習することで、自然言語処理の様々なタスクに高い精度で対応できるようになります。ChatGPTは、最新のバージョンである「GPT-3」では、1兆個以上のパラメータを持ち、広範な自然言語タスクに対応することができます。

ChatGPTは、多数の自然言語処理タスクに応用されています。例えば、会話型AIアプリケーション、自動翻訳、文章の生成や要約、文章の感情分析などが挙げられます。ChatGPTの性能は非常に高く、人工的に生成された文章と区別がつかないほどの自然な文章を生成することもできます。これにより、人工知能が人間とのコミュニケーションに利用される可能性が高まっています。

ChatGPTは大量のテキストデータから学習されたデータを用いて、入力前後の関係を単語ではなく、文章で理解し、最適な文章の生成や分類などを行うAIと言うことが分かります!

実際にも現在の取り組みとして、

  • 司法試験
  • 医師国家試験
  • MicrosoftEdgeへ組み込み
  • WordPressのプラグイン作成

が試験的に行われ、大きな実績を残しています。大量のテキストデータから学習されたデータはとても恐ろしいですね。

ChatGPTのはじめかた

AIの発達×学校はどうなるのだろう?

AIの普及によって、自分で考えるよりもAIを使った方が「早く・確実・楽」という子どもが利用するメリットがそろっています。しかしながら、AIも誤った情報を与えることがあることが、明言されています。このような場合に「本当にその情報が正しいのか?」と疑う力・見抜く力が求められると私は思います。また、簡単な情報はより手に入りやすくなるので、「知識を活用して、考える時間が学校の中で増えていくのではないか」と思います。

しかしながら、AIを活用していく場面は増えていくと考えられます。現在社会問題にもなっている教師の長時間労働についてですが、形式的な事務の業務や書類作成などはAIの方が確実で早いです。そのような使い方をしていくことで学校現場に一本の灯りが灯るのではないかと私は思いました。

児童生徒はもちろん、教師も「AIに全てを委ねるのではなく、AIを利用し、考えるプロセスを大切にする」ことが今後は重要視されていくのではないかと私はChatGPTを利用しながら考えました。

このChatGPTはAPIやβ版で絵も描けるとのことなので、是非使ってみたいなと思いました!

初めての3学年が揃う年、より学びのある研究室を目指して

明けましておめでとうございます。今年もよろしくおねがいします。

このブログでは昨年の振り返りと今年の目標についてのブログにしていきたいと思います。

昨年の振り返り

  • カテゴリー別ブログ投稿数
  • 全体ブログ閲覧数ランキング

カテゴリー別ブログ投稿数

合計33本でした!

後期から始めたゼミの振り返りはとても読みごたえのあるブログになっています。お互いが振り返ることで、別の視点でも考えることができ、実際どのように自分のものにしていくか、今後どのようにしていくかが述べられていていました。研究室の活動を残しつつ、高校生にも大学の活動について知っていただけるように続けていきたいと思います!


全体ブログ閲覧数ランキング

3位 PythonでWebスクレイピング

magnetが書いたPythonでスクレイピングを実際に行ったブログが第3位でした!

授業の振り返りで行った内容をブログにしました。実際のPythonのコードも公開しています!コメントも丁寧にあるのが印象的でした。スクレイピングは便利な半面、使い方を間違えるとサイトに負荷をかけるものなので注意も必要ですね!


2位 話題の「Midjourney」を使ってみました!

AIを使った画像生成ツールのブログが第2位でした!

大学の授業でAIについて学習したのをきっかけに、AIが活用されているツールを紹介したブログになります。キーワードをもとにAIが自動で画像を生成するツールで、とても話題になりました!現在ではたくさんのツールが出てきました。SNSでも手軽にAIの画像生成が使われていて、私達の生活の周りにAIが近づいているように感じます。

教材としても使いやすいものになるので、高校の情報や技術科の教材としての活用も近い未来に行われるかもしれないですね


1位 LINEのAPIを使いこなそう!

Pythonで行うLINEAPIの紹介を行ったブログが第1位でした!

Pythonの学習で最初に何をしたらいいのかわからない方にとてもおすすめなツールです。とても簡単に実装をすることができます。

最近では、Youtubeでも解説している動画もたくさんあるので動画を見ながら学習を行うこともアリです!

来年度の目標

昨年度の上半期は授業の振り返りを行ったブログが多く、下半期はゼミの振り返りを行ったブログが投稿されました。現在のゼミのメンバーは7人もいるにも関わらず、下半期はかなりサボってしまいました。反省の限りです。上級生としてもっとできたことがあったのではないかと思ってしまいます。来年度もこのような事態にならないように、原因の分析と対策を行っていきたいです。

来年度の目標

  • 投稿本数100本以上
  • 全員が投稿できるような雰囲気づくり
  • 後輩への引き継ぎ

これらを目標に一年間行っていきたいと思います!

また、より多くの方に知っていただけるようにWordPressの理解を深めていくことも必要になっていくと思います。学び続けることを忘れず、前進し続けたいと思います!

今年も小倉研究室をよろしくお願いします。

YouTube Data API v3 使ってみた!②

こんにちは。小倉研3年のpeaceです。
大変お待たせしました! 2ヵ月ぶりですね( ´∀` )
「YouTube Data API v3 使ってみた!」の第2弾です!

「まだ第1弾を見てない!」という方はこの記事を読む前にこちらを↓
https://www.mogura-lab.com/783

それでは第2弾スタート!

やりたいことの全体の流れ(超ざっくりとおさらい)

1.Google Cloud Platform への登録
2.APIキーの取得
3.信州大学公式YouTube【shinshuweb】のチャンネルIDの取得
4.信州大学公式YouTube【shinshuweb】のいろんなデータ取得

今回の投稿の内容

2.APIキーの取得
3.信州大学公式YouTube【shinshuweb】のチャンネルIDの取得

2.APIキーの取得

今回は、前回登録した「Google Cloud Platform」から「APIキー」を取得していきます。

APIキーの取得

「APIとサービス」という場所から「認証情報」を選択するとAPIキーが取得できる画面にすすめます。
ここでAPIキーを取得するときに、画面下側の「APIの制限」で有効なAPIキーを今回利用する[Youtube Data API v3]のみに設定しておくとGoodです!

3.信州大学公式YouTube【shinshuweb】のチャンネルIDの取得

ここからは、信州大学の公式YouTubeである[shinshuweb]のチャンネルIDを取得していきたいと思います。

YouTubeのチャンネルIDとは?

どのYouTubeチャンネルにも設定されている識別子(多くの対象の中から特定の1つを識別・同定するため用いられる名前や符号、数字等)のことです。

今回は、大量にあるYouTubeチャンネルの中から[shinshuweb]を見つける際にチャンネルIDが必要となります。

それでは、チャンネルIDの取得に使用したコードを載せておきます。
詳細は、コード中のコメントアウトを見てください。

次回からは、いよいよデータの取得をおこなっていきます!
しかし、Google Cloud Platformの体験期間が残り10日!
そして、今週末の3連休(7/16~18)が授業で全部つぶれるといった過酷なスケジュールなので、できたところまで載せる形になるかもしれません…
とりあえず、がんばるので次の投稿を待ってていただけたらと思います!

皆さんも、Google Cloud Platformの体験期間を使うときには計画的にご利用ください(笑)

最後までご覧いただきありがとうございました!

LINEのAPIを使いこなそう!

LINEのAPIを知っているでしょうか?現代ではLINEはほとんどのスマホユーザーが利用しています。1つのツールとしてLINEのAPIを知っていると課題解決の方法が広がると思います。今回はLINEのAPIの導入方法を紹介したいと思います。

おしながき

  1. LINEのAPIの活用事例
  2. LINENotifyについて
    • Notifyの概要
    • 使い方(実装する直前まで)
    • やってみた
  3. LINE Messaging API SDK
  4. まとめ

LINEのAPIの活用事例

LINEのAPIを活用すると本当にたくさんのことができるようになります。公式LINEの仕様を変更することや、チャットボットの作成、アンケート集計などなど多岐にわたります。もちろんこのようなシステムは複雑でレベルも高いです。しかし、「メッセージを送るだけ」なら簡単にできます。なので、制作活動の中で必要な機能を少しずつできるようになれば、いずれ複雑なものを作れるようになると思います。

LINE API USE CASE」にはLINE が公式に公開しているAPIの活用法になります。レベルがとても高いですが、見てみると想像が膨らむと思います!

LINENotifyについて

Notifyの概要

LINENotifyはご存じでしょうか?

LINENotifyというのは「Webサービスからの通知をLINEで受信するツール」です。もう少し詳しく解説すると「Webサービスと連携すると、LINEが提供する公式アカウント”LINE Notify”から通知が届きます。複数のサービスと連携でき、グループでも通知を受信することが可能です。」となります。

LINENotifyサイトはこちら

LINENotify API Documentはこちら

Notifyの使い方(実装する直前まで)

ここでは、Notifyの「サービスへの登録」→「送信するルームの選択」→「トークンの発行」までを行いたいと思います。

LINENotifyのサイトはこちら

やってみた

import requests

TOKEN = 'トークンをペーストしてください'
url = 'https://notify-api.line.me/api/notify'
send_contents = 'LINE大好き'

TOKEN_dic = {'Authorization': 'Bearer' + ' ' + TOKEN} 
send_dic = {'message': send_contents}
requests.post(url, headers=TOKEN_dic, data=send_dic)

このコードを実行すると、先程決めたトークルームに「LINE大好き」と送られます。また、少しコードを増やすと画像も一緒に送信できるので、やってみてください!

この方の動画がとてもわかりやすいので、参考になると思います。

LINE Messaging API SDK

前のブロックでは「LINENotify」を扱いました。これは簡単に使えるので、とても便利な反面、できることにどうしても制約があります。今回紹介する「LINE Messaging API SDK」ではできることが格段に増えます。

できることの一例

LINECLOVAなどのAIとの 連携

LINEミニアプリでの活用

LINEPay決済ツールとの 連携

他サービスとLINEログインの連携

MessagingAPIを活用し双方向性のコミュニケーション

などなど、LINEサービスを使い尽くすことができます。

もちろん言語もほとんど網羅されいて、GitHubでAPIリファレンスが公開されています。URLはこちら

MessagingAPIではLINENotifyとは異なり、より多くの人にメッセージを送信でき、双方向性があるので、チャットボットの作成やAIも組み込むことができたら面白そうですね!

まだ、わからないことが多く、導入例などは今回は紹介しないのですが、今度作成したら紹介したいと思います。

まとめ

今回はLINEのAPIサービスの紹介を行いました。「LINENotify」は簡単に導入できるので、一度試してみる価値は全然あると思います!また、MessagingAPIもメッセージを送信するだけなら難しくはなく、Youtubeの動画などを参考にしたら活用できると思います

また、LINEのビジネス用アカウントでは、メッセージ配信もできるので、チャックしてみるのもアリかもしれません。

今回のブログを通じて、LINEのAPIサービスを使うきっかけになればと思います。

PythonでWebスクレイピング

どうも。magnetです。

最近の情報系の授業において、「スクレイピング」というものを学びました。

スクレイピングについて詳しく知りたい方は、

「ゆう」が書いたこちらの記事をどうぞ~

その授業で各自製作の課題が課されたので、

とあるサイトをスクレイピングしてみました!!

以下に私が書いたコードを載せておきますね~。

import requests
from bs4 import BeautifulSoup
# importでrequestとbs4のBeautifulsoupを読み込みます。
# Webページを取得して解析する

load_url = "とあるサイトのURL"
# とあるサイトのURLをload_urlと定義。
html = requests.get(load_url)
# htmlをrequestのgetというメソッドを使い、 するものだと定義する。
soup = BeautifulSoup(html.content, "html.parser")    # HTMLを解析する
#ちょっとよく分からない。
# ~ここまでで、HTML全体を表示するプログラムは完成~

menu_all = soup.find_all(class_ = "menu-list")
# menu_allと定義します。

for menu in menu_all :
#for 関数 in リスト でmenuの中にmenu_allを何回も入れていきます。
    menu_name_full=menu.find_all('h4',attrs={'class':'menu-name'})
    #menu_nameを全て探すことを、menu_name_fullと定義します。
    for menu_name in menu_name_full :
    #menu_nameの中にmenu_name_fullを何回も入れていきます。
        print(menu_name.text)
        print()
        #printで指定したものの表示と、見やすいように空白を表示しています。

それぞれのコードの詳しい説明は#で書いてある文を参照してみて下さい!

これを実行すると、、、

メニュー一覧が出てきます。。

やってることそんなに難しそうじゃ無いじゃんか。

って思うかもしれませんが、

実際やってみると結構重めです……

なかなか理解出来ずに困ってましたが、

周りの助けも有りなんとか完成できました!

手伝って下さりありがとうございました。

今回のものは、メニュー一覧だけの表示となっていますが、

カロリーや値段も対応して表示出来ると、

データサイエンスみが増しますね。

また、完成したら投稿したいと思います。

ではでは。

あ、あと興味があればぜひ最新の投稿もご覧下さい!

YouTube Data API v3 使ってみた!①

お久しぶりです。peaceです。
今回は、「YouTube Data API v3」を利用し、
信州大学公式YouTube【shinshuweb】https://www.youtube.com/user/shinshuweb
のデータを取得しようと思います!

今回やりたいことの全体の流れ(超ざっくりと)

1.Google Cloud Platform への登録
2.APIキーの取得
3.信州大学公式YouTube【shinshuweb】のチャンネルIDの取得
4.信州大学公式YouTube【shinshuweb】のいろんなデータ取得

今回の投稿の内容

1.Google Cloud Platform への登録

1.Google Cloud Platform への登録

 今回使用する「YouTube Data API v3」は、「Google Cloud Platform」への登録が必要とです。登録には、Googleアカウントとクレジットカード、電話番号、インターネット環境が必要となります。
 「YouTube Data API v3」と「Google Cloud Platform」については↓をご覧ください。

YouTube Data API v3 とは?

Youtube動画を取得できるAPI(API=プログラムとシステムを繋げる仕組み。今回の場合はプログラムとYouTubeの動画。)です。
特定のキーワードやチャンネルの動画を取得することや、動画の統計情報を取得することができます!

Google Cloud Platform とは?

Googleがクラウド上で提供するサービスの総称です。
データ分析や機械学習、コンピューティングなど、様々なサービスが利用できます!

 

PythonでWebスクレイピング(後編)

おしながき

  • 今回やりたいこと
  • 作る順番
    1. ライブラリのインストール
    2. コーディング
    3. Pandasを使って、CSV形式での保存
  • まとめ

今回やりたいこと

今回やりたいこととしては、

学校情報サイトから、「学校名」「生徒数」「住所」をスクレピングしていきたいとおもいます。そして、最後にはPadansを使って、CSV形式で保存するところまでやっていきたいと思います。

順序は

  • ライブラリのインストール
  • コーディング
  • Pandasを使って、CSV形式での保存

大まかに分けてこの3つになります。少し長くなってしまうかもしれませんが、ゆっくりやっていきましょう!

作る順番

1.ライブラリのインストール

今回使用するライブラリは「requests」「Beautifulsoup 」「pandas」「time」の4つです。webスクレイピングというと「selenium」もBeautifulsoup と同様に人気で使われていますが、今回は使用しないです。

インストールを行っていない方は

pip install requets
pip install pandas
pip install Beautifulsoup

をコマンドプロンプトでやっていただければインストールをできます。

2.コーディング

下のものが本編になります

#今回使うライブラリ
import time 
import requests
from bs4 import BeautifulSoup
import pandas

#スクレイピングをするサイト
#URLは今回は伏せておきます
url='@@@@@@@@@@@@@@@@@@@@@@@@@@@'

#requestsを使って、URL先の情報を取得
res=requests.get(url)
soup=BeautifulSoup(res.text,'html.parser')
school_list=soup.find_all('li',attrs={'class':'school_list_city'})


for details in school_list :
    school_details={}
    sdd=details.find('div',attrs={'class':'school_detail_data'})
    school_name=sdd.find('p',attrs={'class':'school_name'}).find('span').text
    shcool_item=sdd.find('p',attrs={'class':'item'})
    total_students=shcool_item.find('span',attrs={'class':'border_underline'}).text
    ads=sdd.find('p',attrs={'class':'item position'})
    ad=ads.find('span',attrs={'class':'small'}).text

    school_details['学校名']=school_name
    school_details['生徒数']=total_students
    school_details['住所']=ad
    data.append(school_details)
    time.sleep(2)

コードがきれいに書けていないかもしれませんが、まだまだ勉強中の身なので、ご容赦していただければと思います

少し解説をさせていただくと

ところどころに「~.find(‘@@’),attrs={‘class’:’%%%’}」と言った記述がたくさんあると思います。これを抑えることができたら簡単なスクレイピングは可能かと思います。

これを日本語変換してみると「~の中の一番最初の@@タグのclassの%%%を指定します!」といった感じです。HTMLというデータはとても大きいものなので、一気に操作を行うのではなく、少しづつ絞っていくとやりやすいのではないかと思います。

3.Pandasを使って、CSV形式での保存

スクレイピングをしたデータをpandasを使って、DataFrameに格納し、それをCSV形式で保存することは一見難しそうに見えますが、案外簡単です。

#pandasを使って、DataFrameに格納
df=pd.DataFrame(data)
#CSV形式で保存
df.to_csv('学校の情報.csv',index=False,encoding='utf_8_sig')

この2行だけで終わりです。少し解説をさせていただくと、「index=False」というのは、DataFrameに格納した際にインデックス番号が同時に付与されるのですが、「CSV形式で保存するときにそのインデックス番号はいらないよー」ということです。

まとめ

かなり駆け足でBeautifulsoup を使ったWebスクレピングを紹介していきました。高校情報Ⅱの教員研修資料にも今回のBeautifulsoup を使ったWebスクレイピングは紹介され、今後必要なスキルの一つになるのではないかと思います。

また、プログラミングは様々な勉強ツールがあります。今回は私が勉強するときに使用したYouTubeの動画のURLを載せておきたいと思います。勉強するときの助けになればいいなと思います。

PythonでWebスクレイピング(前編)

おしながき

  1. Webスクレイピングとは?
  2. Webスクレイピングを行うときに注意すべきこと
  3. まとめ

1.Webスクレイピングとは?

Webスクレイピングの定義を調べてみると、、、

Webスクレイピング(Webデータ抽出、スクリーンスクレイピング、Webデータ収集とも呼ばれる)は、Webサイトから大量の情報を自動的に抽出するコンピュータソフトウェア技術のことです。データの多くはHTML形式の非構造化データで、これをスプレッドシートやデータベースの構造化データに変換することで、さまざまなアプリケーションに利用することができます。Webスクレイピングの主な使用例としては、価格監視、価格情報、ニュース監視、リードジェネレーション、市場調査などが挙げられます
引用:https://www.octoparse.jp/blog/web-scraping/#div1

といったように、インターネット上の情報をプログラムを使って、大量に抽出することを指します。抽出されたデータは「.xlsl」や「.csv」の形式で出力され、市場調査やデータ分析等に使われます。今回行うことは、Pyhtonでwebスクレイピングを行いますが、最近では、ノーコードでもWebスクレイピングを行うことができます。一例ではありますが「Octoparse」といといったサービスもあります。興味がある方はぜひともチェックしていただきたいと思います。

2.Webスクレイピングを行うときに注意すべきこと

 Webスクレイピングはとても便利な反面、注意すべき点ももちろんあります。それは

  • サーバへの負荷をかけすぎない
  • そのサイトがスクレイピングをしても問題ないか

これらのことを最低限注意しなければなりません。

 1つ目のサーバへの負荷については「間隔を開けてアクセスする」ことが一番手っ取り早いと思います。Pythonであれば

import time
for i in range(5):
    print(i)
    time.sleep(1.0)

のように、1秒ごとの間隔をあける工夫をすることで、負荷を減らすことができます。難しいことではないと思うので、思いやりの心を持ってやっていただけたらと思います。

 2つ目の「そのサイトがスクレイピングをしても、問題がないか」についてはしっかりと確認する必要があります。今回は有名なスクレイピングを行ってはいけない代表的なサイトを紹介したいと思います。

  • Amazon
  • Rakuten(楽天)
  • Twitter、Instagram、FacebookなどのSNS

これらのサイトの他にもスクレイピングを行ってはいけないサイトはたくさんあります。なので、行う前に対象のサイトの「利用規約」をしっかりと確認することが大切です。これら無視した場合「偽計業務妨害罪」に問われる可能性があります。更に細かいことは下のリンクに書いてあったので、気になる方はスクレイピングを行う前に確認してもらうといいと思います。

3.まとめ

Webスクレイピングは大変便利な半面、怖い観点もあります。なので、サイトに迷惑をかけない範囲で行うことが重要なのかと思います。後編では実際にどうやってスクレイピングを行うのかを解説をしたいと思います。

Webページの作成

おはようございます。magnetです。

ずっと前に以下のページで streamlit を使ったWEBページを紹介しました。

(興味があればこちらもご覧下さい!)

そこで、今回はレポート作成に役立つようなサイトを作りたいと考え、

文字数カウントサイト

なるものを作りました。

https://share.streamlit.io/maglill/saisyonoyatu/main/mojisuu.py

上記のURLから飛ぶことが出来るので一回見てみて下さい!

これはサイト名通り、Wordなどに書いた文字をコピー&ペーストしてカウントボタンを押すと文字数をカウントしてくれます。

WordとかGoogleドキュメントに文字数を数えてくれる機能があるのは知りません笑

改善点としては英単語とかは文字数ではなく単語数が主流なので、正確に数えてくれません。

例えば、yesは3文字、weは2文字、canは3文字というようになります。

あくまで文字数ですからね~……

気分によって使い分けてみては?

最後に、コードを貼って終わりとします。ここまでご覧頂きありがとうございました!

import streamlit as st

st.title('文字数カウントサイト')
st.write('')
#ただの改行
'このサイトは入力された文章の文字数をカウント出来るサイトです。'
'「文字数足りてるかな?」と思ったら活用してみて下さい。'
st.write('')
#ただの改行

text=st.text_input('↓ ↓ ↓  入力してね  ↓ ↓ ↓')
#これ1つでテキストボックスも完備。

st.write('')
#ただの改行

n=len(text)
#textをnと置く。

if n==0:
    st.write('文字が入力されていないよ。')
    #未入力の時

if st.button('カウント'):
    st.write('文字数は',n,'です。')
    #ボタン押したとき文字数表示
    if n==0:
        st.write('nothing in the textbox. are you kidding me :△')    
    elif 1100<= n <=1300:
        st.write('およそA4一枚程度だよ。')
    elif 20000<= n <=40000:
        st.write('おおよそ卒業論文の文字数だよ。')
    else:
        st.write('')