Python関連のことを調べてみた2023年01月27日

Python関連のことを調べてみた2023年01月27日

BERTで有名なAttentionを自分でやって機械翻訳の精度を改善してみた

こんにちは、最近の機械翻訳の精度すごくないですか!?
私が学生時代のころのgoogle翻訳はまだまだ不自然という印象でしたが、
今のDeepLすごすぎる!!私が訳すよりうまいぞ…

というわけで、前振りが長くなってしまいましたが、最近、自然言語処理を独学で勉強しているのですが、Attentionという機構が全然理解できず。かの有名な論文”Attention is all you need”も読んでみましたが、挫折・・・orz
論文:https://arxiv.org/abs/1706.03762
もう少し初学者でもわかるものはないかと探していたのですが、以前、自分が会社のCSRを翻訳していたときの経験を思い出し、「あれ、これってAttention自分でやってたってコト!?」と腹落ちし、Attentionが理解できたので記事にしました。

# 会社でCSR翻訳してたときのこと
会社でCSRの日本語版を英訳してほしいとの依頼があり取り組んでいたのですが、オーダーが大量にあり、イチから訳していると期限に間に合わないかもしれないと思い、機械翻訳に頼ってみました。

:::note warn

元記事を表示

Python 気持ちが悪い引数への値の渡し方

下のコードにおいて、「気持ちが悪い」とコメントしたところ。ちゃんと動くが、気持ちが悪い。

“`Python
def func(a, b, c=3, d=4):
print(a, b, c, d)

# OK
func(1, 2)
# 1 2 3 4

# OK
func(1, 2, c=-1, d=5)
# 1 2 -1 5

# OK
func(1, 2, d=5, c=-1)
# 1 2 -1 5

# 気持ちが悪い
func(1, 2, -1)
# 1 2 -1 4

# 気持ちが悪い
func(1, 2, -1, 5)
# 1 2 -1 5

# 気持ちが悪い
func(a=1, b=2)
# 1 2 3 4

# 気持ちが悪い
func(b=2, a=1)
# 1 2 3 4

# 気持ちが悪い
func(c=-1, b=2, a=1)
# 1 2 -1 4
“`

一応、下のようにすれば、「気持ちが悪い」のパターンでerrorを発生させることができるらしい。

“`Python
def func2(a, b, /, * , c=3, d=4):
p

元記事を表示

wiki40b/jaをダウンロードして前処理もする

## はじめに

TensorFlowDatasetsの[wiki40b](https://www.tensorflow.org/datasets/catalog/wiki40b?hl=ja)のダウンロードが少しむずかしかったので,やり方を書きます.

## 環境構築

venvやvirtualenvなどで適当にpython3の環境を作っておく.

“`
pip install tensorflow tensorflow-datasets
“`

をする.tensorflowも入れないとだめみたいです.

## ダウンロード

以下のコードを実行する.文ごとに改行された単言語コーパスが得られる.

`make_data`は,ダウンロードしてきたデータを行ごとに返すイテレーターです.ダウンロードしてきたデータには,パラグラフや行の切れ目を示すトークンがいろいろ入っているので,そのままでは単言語コーパスとしては使いづらくなっています.

`get_line_data`は,行ごとに文を取り出して返すイテレーターです.`get_paragraphs`でパラグラフごとのイテレーターにして,`

元記事を表示

Pythonチートシート – TKinterウィジェットの使い方一覧

Pythonを使ったGUIアプリを作りたいと考え、TKinterウィジェットの使い方一覧をまとめたアプリを作ってみました。後ほど実用的なアプリができたら公開しようと思います。

https://docs.python.org/3/library/tkinter.html

## 基礎となるTKinterウィジェット
以下のウィジェットを実際に作って1つのアプリに纏めてみました。
・ラベル、ボタン、インプット、エントリー、テキスト、スピンボックス、スケール
・チェックボックス、ラジオボタン、リストボックス

![スクリーンショット 2023-01-26 233414.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/337578/e73117e3-25a1-92f9-f4c9-47b58054fa26.png)

## 実際のコード

“`python
import tkinter as tk

#ウィンドウのタイトル+サイズ
window = tk.Tk()
window.title(“GUI Progr

元記事を表示

R/tidyverseとPython/polarsの比較

# はじめに
備忘として、データフレーム操作におけるRのtidyverseからpythonのpolarsへの書き換えを順次更新していきます。
Rからpythonに移行したものの、pandasが嫌いで使いたくない人向けです。

# 準備

### パッケージインストール

R
“`
install.packages(“tidyverse”)
library(tidyverse)
“`

python
“`
!pip install polars
import polars as pl
“`
### データフレーム

以下のような横型と縦型の2種類のデータフレームを使ってコードを書いていきます。
“`
> df
date USDJPY EURJPY SPX
1 2023-01-01 130.0 140.0 3800
2 2023-01-02 131.0 141.0 3900
3 2023-01-03 130.5 143.5 4000

> df_long
date index value
1 2023-01-01 USDJPY

元記事を表示

PythonでRaspberryPiで撮影したカメラ映像をリアルタイム転送する

# はじめに
本記事は備忘録の一部です。
![IMG_20230126_231929.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629378/e2b80505-44b4-feff-715f-e41c0429a513.jpeg)
[Fig.1]カメラを搭載したRaspberryPi4

**監視カメラ**でも作ろうかと過去のコードをぴっぱり出したところ、コピペでは動作しなくなっていたので、最近の仕様変更に合わせたコードへの修正となります。

具体的には、**RaspberryPi**で取得したデータをほかのデバイス(Pythonが動くもの)で表示させるというものになります。

本コードは拡張性が高く、**リアルタイム映像をAI・機械学習等の処理**にかけるときに別のサーバー上で処理ができるので大変重宝しております。**簡易監視カメラ**にもなりますし、**Python**で書かれているのでNAS等に動画を保存しておくことも可能です。可能性は無限大と言えますね!

中華のIPカメラでやれよって話ですけど

元記事を表示

理解したい!カーネル主成分分析まとめ

# このスライドについて
以前にカーネル法について自分なりにまとめたものです。カーネル法の概念は大変難しく、専門でない自分にはかなり苦労しました。間違っているところがあったら教えていただけたら嬉しいです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730459/061b9593-b10c-a6f5-869d-82b9c6dcfd66.png)
# 目次
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730459/98130bce-3002-1020-a203-c9980ab486b3.png)
# PCA 主成分分析の概要
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730459/92259f6c-2e3b-f183-8b52-bdbe381bb559.png)

![image

元記事を表示

【Django】既にデータが入っている既存テーブルにユニークキーを追加したい時

単純にやろうとするとどうしてもエラーがでてしまいますよね。
そんなときに使える処方箋です。

“`python
class Profile(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
## user_nameを追加
user_name = models.CharField(max_length=40, null=False, blank=False, unique=True)
display_name = models.CharField(max_length=40, blank=True)
“`

既存のテーブルに上記の `unique=True` がついた、 `user_name` カラムを追加しました。

この状態で, `python manage.py migrate` するとエラーで怒られると思います。

## マイグレーションファイルをいじります。

`python manage.py mak

元記事を表示

Python で バイト文字列をサニタイズ

通信などで取得したデータとして、バイト列

“`
data= b’@-79,8,7 251 507 10146 1404 152 3700 70b3d559e01d25a3\r\n’
“`

がある。
これを処理する前にサニタイズし、決まったフォーマットでデータを採取しよう。

# 環境

– Python 3.9.2
– LANG=en_GB.UTF-8

# 最後の改行を rstrip で削除する

まずは、最後の改行。もし改行コードがあったりなかったりLFだったりCRLFだったりということを許容しないといけない場合は、右端に \r ないし \n を削除しておきたい。

`rstrip` を使うとすると バイト列で処理

“`
data2 = data.rstrip(b’\r\n’)
“`

ないし str で処理

“`
data2 = data.decode().rstrip(‘\r\n’)
“`

となる。

しかしながら後者はもし受信データが文字化けして以下のようになった場合

“`
data= b’@-83,7,7 257 497 10153 423

元記事を表示

python numpy 2d array filter

keyName = myvalue
keyIdx = 0
“`python
import numpy as np

def LookUp(npArr, keyName, keyIdx):
keyFilter = np.array([keyName])
res = np.in1d(npArr[:, keyIdx], keyFilter)
return npArr[res][0]
“`

元記事を表示

VSCodeでpip installしたパッケージが参照出来ない時の解決方法

# VSCode上でpip installしたパッケージが参照出来なかった…

ふとしたきっかけでdiscordのbotを作る事になったので、
bot開発環境のため`python`の導入を進めてみた所、掲題の部分でハマったお話。。。

その際、`Pip Manager`というVSCode上でpipでインストールしたパッケージの
参照・管理まで解決してくれる拡張機能を見つけたので事例も兼ねて紹介します。

※discordのbot開発の手引きはこちらを参考にしました
https://www.freecodecamp.org/japanese/news/create-a-discord-bot-with-python/

## 記憶を頼りにpythonのインストールと環境設定
– [Python.org](https://www.python.org/downloads/)から取り合えず最新版をDL
  → インストーラに言われるまま設定

– VSCodeの拡張機能の[Python](https://marketplace.visualstudio.com/items?itemName=

元記事を表示

ゴッホとカンディンスキーを判別する絵画分類器を作成してみた

# 結論
* 何を作成したか?
機械学習を利用して、ゴッホとカンディンスキーの絵の分類機のWebアプリを作りました。

# 目次
1. 自己紹介
2. 本記事の目的
3. 機械学習のプログラムでやってみたいこと
4. 実装
4-1. 環境
4-2. 結果
5. 考察と今後の目標

# 1. 自己紹介
* 40代男性、 趣味は絵を書くことです。
* 現在の仕事はITのグループもある部で協力会社への発注や予実管理などの業務を行なっています。
* リスキリングのために、40代になってから書籍を見ながら独学でITやプログラミングを勉強しています。
* 今回、専門実践教育訓練給付金制度を使って、プロの指導を受けています。
* 病気の後遺症で、左手足が不自由なため右手でタイピングしています。左手は、controlやshiftを押す程度です。

# 2. 本記事の目的
下記のように、主に自分のためですが、下記を通じて、プログラミングやシステム構築を学び、コミュニティに少しでも貢献できると良いと考えています。
*  専門実践教育訓練給付金制度のコース修了条件がブログ作成のため
*  学ん

元記事を表示

Pyxelで作ったゲームをネット上に公開しよう!

# 作ったゲームを公開しよう!
Pyxelでゲームを作っているみなさん!せっかく作ったゲーム、色んな人に遊んでもらいたくないですか!??
頑張って作ったゲームを自分だけしか遊ばないのはもったいない!?

この記事では、GitHubと、GitHub Pagesというものを使って、作ったゲームをインターネット上に公開する方法を紹介します!

## 1. GitHubのアカウントを作成する(持っていない人)
こちらの記事を参考に、GitHubのアカウントを作成しましょう

https://qiita.com/ayatokura/items/9eabb7ae20752e6dc79d

## 2. GitHub上にリポジトリを作成する
GitHub上に、リポジトリというものを作成していきます!リポジトリとは、ざっくりいうとデータを置く場所のことです!

GitHubの右上の`+`ボタンを押し、`New repositor

元記事を表示

Tkinterを用いたオセロ

tkinterを用いたオセロゲーム

開発環境:VScode python 3.10.2

実行結果
仕様:下記のpythonプログラムを実行すると2つのウィンドウが表示される(図1)。図1の右のウィンドウにおきたいマス(行>row(1-8行)、列>col(1-8列))を入力し「ok」をクリック。その後、vscodeのコンソール上で任意の文字を入力すると、図3のように駒が置かれる。

図1:実行結果(1)
![スクリーンショット_20230126_173448.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3031701/664f962f-313c-2f1b-e81f-b89960995759.png)

図2:実行結果(2)
![スクリーンショット_20230126_173508.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3031701/1b50eba3-7d6c-be06-8bf4-ef990b6bf989.pn

元記事を表示

Pythonで二次元配列をcsv形式に変換したい

業務で二次元配列のデータをcsv形式に変換する必要があり、
思ったより苦戦したので、記録として残してみました。

# 元となるデータ
業務のデータをそのまま使うわけにはいかないので、
こちらのデータを使用していきます。

“`python
test_data = [[‘りんご’, ‘みか\nん’], [‘いちご’, ‘メ”ロ”ン’], [‘ブドウ’, ‘キウ,イ’]]
result = “” # 変換後のデータを格納する
“`

# 最初に自分で考えた処理
“`python
for i in range(len(data)):
keep = “,”.join(data[i])
if (i == 0):
result = keep
else:
result = result + “\n” + keep
“`
ひどいですね。。笑
かなり分かりにくい書き方なうえに、
エスケープ文字にも対応できていません。

上司に相談したところ、**「リスト内包表記」** というのが、
for分の代わりに使えるとのことでした。
なので、ひとまず

元記事を表示

シフト表の自動作成を Python・Pulpで挑戦してみた。

## 目的・経緯
– シフト表の自動作成による仕事の効率化
 本来の業務でシフト表の作成が多くの時間を割いてしまう仕事になっているため

## 目標
– Google Colabでシフト表を自動で割り振り、作成したシフトをエクセルに出力する

## シフト作成時の条件
– 3種類の勤務時間
– 従業員数31名
– 実際のカレンダーを使用する
– 土日祝日を抜いた平日のみの勤務とする(営業日)
– 希望休を反映させる
– 1日の勤務時間、一人一人の月間勤務時間を平均的にする
## 実行環境
– Google Colabolatory
– MacBook Pro (OS : macOS Ventura13.2)
– Microsoft Execel for Mac(バージョン16.69)

## 参考サイト
https://qiita.com/ookamikujira/items/862ec78914d5deb549c1

https://docs.pyq.jp/python/math_opt/pulp.html

https://pypi.org/project/jpbizday/

元記事を表示

python manage.py runserverを行なった際に起きたMySQLに関するエラー

はじめに

数日ぶりに、Djangoを利用し作成していたWebアプリを起動しようとすると以下のエラーが起きた。

“System check identified no issues (0 silenced).
Exception in thread django-main-thread:
Traceback (most recent call last): …“
※実際はもっと長いのですが省略しています。

コードを変更した覚えもない、プラス、System check identified no issues (0 silenced)と書かれているので、コードに関わるエラーではないと感じた。

エラーログを読んでみると、どうやらMySQLが起動していないような雰囲気だったので、ターミナルにて
“mysql.server status“
を行ったが、状態を確認すると起動中であった。

結論からすると、MySQLの状態が起動中にも関わらず、うまく動いていないことが原因で、再起動をする必要があった。
自分自身も何故エラーが起きたのかはっきりしていないが

元記事を表示

pyCircosで綺麗な円形グラフをplotする#2

## 1.前回#1

https://qiita.com/katsujitakeda/private/af0df7d942a2c3dd6344

## 2.今回の内容“`barplot“` “`scatterplot“` “`lineplot“` “`heatmap“` “`chordplot“`
かけるようになるグラフ
![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730459/7e67690c-d6bf-4590-1abc-dacb2c5d7285.png)

### 2-1.使用するデータ

“`python
from pycircos import Gcircle,Garc
from collections import defaultdict
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
“`
“`python
general_data = ‘./sampl

元記事を表示

pyCircosで綺麗な円形グラフをplotする#1

# pyCircosとは
ゲノム情報の可視化ソフト“`Circos“`を“`python“`の“`matplotlib“`ベースで書くことができる可視化パッケージです。比較的簡単にきれいなCircosを書くことができます。
[Document](https://github.com/ponnhide/pyCircos) [example](https://github.com/ponnhide/pyCircos-examples)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730459/99658a0e-1238-330c-70f3-a67e7838dfc4.png)

## 1.install
“`sh
#python 3.9
#anaconnda環境
pip install python-circos
“`
### 1-1.exapmle notebookのclone
“`sh
git clone https://github.com/ponnhide/pyC

元記事を表示

EPGStation で WebAPI を使ってエンコード自動化

EPGStation での録画ファイル管理その2。

TS ファイルで録画したファイルをエンコードしたい。
EPGStation 上で管理したいののだが、 GUI でイチイチするのではなく自動化したい。

「EPGStation で WebAPI を使って余分な TS ファイルを削除」
https://qiita.com/nanbuwks/items/bab77ef5c61b5e74c905
「EPGStation での録画ルールを一括変更」
https://qiita.com/nanbuwks/items/a6cb0635c947da0090ab

では python で EPGStationの WebAPI を使いましたが、
同様にして EPGStation 上での TS ファイルを一括でエンコーディングします。

# 環境

– Version of EPGStation: 2.6.20
– Version of Mirakurun: 3.9.0-rc.2
– OS:Ubuntu Linux 20.04
– Architecture: x64

「PLEX PX-Q3PE4

元記事を表示

OTHERカテゴリの最新記事