import requests
from bs4 import BeautifulSoup
def crawl(url, max_depth=2):
if max_depth < 0:
return
try:
response = requests.get(url)
content = response.content
soup = BeautifulSoup(content, ‘html.parser’)
links = set()
for link in soup.find_all(‘a’):
href = link.get(‘href’)
if href and href.startswith(‘http’):
links.add(href)
print(f”Found {len(links)} links at {url}”)
for link in links:
crawl(link, max_depth – 1)
except requests.RequestException as e:
print(f”Error during requests to {url} : {str(e)}”)
# 使用例
start_url = “https://b.hatena.ne.jp/” # スタートするURL
crawl(start_url, max_depth=2) # 深さ2でクロール
カテゴリー: Python
GPT-2を使ってマルコフ連鎖で文章生成
mari.py
from flask import Flask, render_template, request
import random
import markovify
from transformers import GPT2LMHeadModel, GPT2Tokenizer
app = Flask(name)
GPT-2モデルのロード
tokenizer = GPT2Tokenizer.from_pretrained(“gpt2”)
model = GPT2LMHeadModel.from_pretrained(“gpt2”)
マルコフ連鎖用のテキストデータを格納するリスト
text_data = []
GPT-2による自由なテキスト生成
def generate_gpt2_text(prompt, max_length=100):
input_ids = tokenizer.encode(prompt, return_tensors=”pt”)
output = model.generate(input_ids, max_length=max_length, num_return_sequences=1)
response = tokenizer.decode(output[0], skip_special_tokens=True)
return response
マルコフ連鎖モデルを生成
def build_markov_model(data):
text_model = markovify.NewlineText(data)
return text_model
マルコフ連鎖を使って新しいテキストを生成
def generate_text_with_markov(model, num_sentences=3):
generated_text = model.make_sentence()
return generated_text
ウェブアプリケーションのルート
@app.route(“/”, methods=[“GET”, “POST”])
def chatbot():
user_input = “”
gpt2_response = “”
markov_response = “”
if request.method == "POST":
user_input = request.form["user_input"]
# ユーザーからの入力をGPT-2に送信し、生成されたテキストを取得
gpt2_response = generate_gpt2_text(user_input)
# GPT-2の生成テキストをリストに追加
text_data.append(gpt2_response)
# マルコフ連鎖モデルを使って新しいテキストを生成
markov_response = generate_text_with_markov(build_markov_model(text_data))
return render_template("chat.html", user_input=user_input, gpt2_response=gpt2_response, markov_response=markov_response)
if name == “main“:
app.run(debug=True)
templates
chat.html
Chatbot
Chatbot
ユーザー: 送信
ユーザーの入力:
{{ user_input }}
GPT-2生成テキスト:
{{ gpt2_response }}
マルコフ連鎖生成テキスト:
{{ markov_response }}
[Python]仮想環境の作成[venv]
Python 引数のデフォルト値
def show_time(h, m, s=0, ms=0):
print(f”{h:02}:{m:02}:{s:02}.{ms:03}”)
show_time(11, 23, 52, 220)
show_time(4, 54, 2, 12)
show_time(12, 3)
show_time(5, 25, 32)
Python AIprograminng
import IPython
from google.colab import output
import cv2
import numpy as np
from PIL import Image
from io import BytesIO
import base64
def run(img_str):
#decimg to image
decimg = base64.b64decode(img_str.split(‘,’)[1], validata=True)
decimg = Image.open(BytesIO(decimg))
decimg = np.array(decimg, dtype=np.uint8);
decimg = cv2.cvtColor(decimg, cv2.COLOR_BGR2RGB)
# image classify
img = cv2.resize(decimg, (64, 64))
img = img_to_array(img)
img = img / 255.0
img = img[np.newaxis]
img = np.asarray(img)
preds = keras_model.predict(img)
result = np.argmax(preds[0])
# draw output
out_img = decimg
cv2.putText(out_img, labels[result], (10,50),
cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 1, cv2.LINE_AA)
#encode to string
_, encimg = cv2.imencode(“.jpg”, out_img,
[int(cv2.IMWRITE_JPEG_QUALITY), 80])
img_str = encimg.tostring()
img_str = (“data:imge/jpeg:base64,” +
base64.b64encode(img_str).decode(‘utf-8’))
return IPython.display.JSON({‘img_str’: img_str})
output.register_callback(‘notebook.run’,run)
https://colab.research.google.com/drive/1cF–C6PRT2j7hPdn5ia1I7SlwGqdvB-d?hl=ja#scrollTo=eT8PXuywDsmO
pythonの応用
pythonの応用を教えて
Pythonは汎用性が高く、様々な用途で使われています。以下に、Pythonの応用例をいくつか紹介します。
データサイエンス
Pythonはデータサイエンス分野で広く使われています。NumPyやPandas、Scikit-learn、TensorFlowなどのライブラリがあり、データの処理、機械学習、深層学習などが行えます。
Webアプリケーション開発
PythonはWebアプリケーション開発にも適しています。DjangoやFlaskといったWebフレームワークがあり、WebサイトやAPIなどを作成することができます。
自動化
Pythonはタスクの自動化にも使われます。例えば、ファイルの自動ダウンロード、Webスクレイピング、自動テストなどがPythonで実現できます。
ゲーム開発
Pythonはゲーム開発にも使われます。PygameやPyOpenGLといったライブラリがあり、2Dや3Dのゲームを作成することができます。
IoT
PythonはIoT(Internet of Things)分野でも使われています。Raspberry Piなどのボードコンピュータを制御するためのライブラリがあり、センサーからのデータ収集やデバイスの制御などが行えます。
以上が、Pythonの応用例の一部です。Pythonは汎用性が高く、用途が多岐にわたるため、その他にも多くの応用例があります。
Pythonの基礎
Pythonは、オブジェクト指向の高水準プログラミング言語で、読みやすく書きやすいという特徴があります。Pythonを学ぶためには、以下の基本的な概念や構文を学ぶ必要があります。
変数とデータ型
変数は、値を格納するための箱のようなもので、変数名に値を代入して使います。Pythonでは、整数(int)、浮動小数点数(float)、文字列(str)などのデータ型があります。
python
Copy code
x = 3
y = 4.5
z = “Hello World”
条件分岐
プログラム内で、ある条件によって処理を分けることができます。Pythonでは、if文を使って条件分岐を表現します。
python
Copy code
if x > 5:
print(“x is greater than 5”)
else:
print(“x is less than or equal to 5”)
ループ
繰り返し処理を行うために、for文やwhile文を使います。for文は、あらかじめ決まった回数の繰り返しに使われます。while文は、条件が真の間繰り返します。
python
Copy code
for i in range(1, 10):
print(i)
while x < 10: print(x) x += 1 関数 複数の処理をまとめて、何度も使い回すことができるようにするために、関数を定義することができます。 python Copy code def add(x, y): return x + y result = add(3, 4) print(result) # 7 モジュール Pythonは、様々なモジュールを提供しています。モジュールを使うことで、汎用的な処理を簡単に実装できます。 python Copy code import math x = math.sqrt(4) print(x) # 2.0 以上が、Pythonの基礎的な概念や構文です。Pythonは非常に多機能な言語であり、多くのライブラリやフレームワークがあります。より高度なプログラミングを学ぶ場合には、これらのライブラリやフレームワークを学ぶことが必要になってきます。
pipのインストール方法
https://qiita.com/suzuki_y/items/3261ffa9b67410803443
