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

Python関連のことを調べてみた2023年07月15日
目次

DockerでMeCabとHanDicを使用して韓国語の形態素解析(Python)

# はじめに
開発中のWebアプリ(Flask)にて韓国語の形態素解析が必要になったので、DockerでMeCabとHandicを動かします。
開発当初は韓国語の形態素解析は辞書はOpen Korean Textを使用してKoNLPyで行っていましたが、辞書の取得に時間がかかりサーバ上ではタイムアウトになってしまうため、軽量に動くHanDicで動かすことにしました。
– [KoNLPy: Korean NLP in Python — KoNLPy 0.6.0 documentation](https://konlpy.org/en/latest/)
– [open-korean-text/open-korean-text: Open Korean Text Processor – An Open-source Korean Text Processor](https://github.com/open-korean-text/open-korean-text)

# MeCabとは
[MeCab: Yet Another Part-of-Speech and Morphological

元記事を表示

Python で LibreOffice 拡張をステップバイステップで作ってみる

「LibreOffice マクロを Ubuntu + Python で作る」
https://qiita.com/nanbuwks/items/77d5707b9a2507972676

において、Python でのマクロが実現できました。マクロを LibreOffice 拡張に仕立て上げることができますが、 LibreOffice Basic の事例が多く Python はなかなかよくわかりません。

今回は、

「LibreOffice マクロ:Pythonでのプログラム例集」
https://qiita.com/nanbuwks/items/1f25e8839089eaefd6d4

のマクロを元に LibreOffice 拡張を作っていきます。

# 元となるマクロ

最初の Item に “Hello World” と書く以下のマクロを使います。

“`
import uno

def HelloWorldPythonItem0():

oDoc = XSCRIPTCONTEXT.getDocument()
oSlideList =oDoc.getDra

元記事を表示

エレキ素人が何か考える(その24):ローパスフィルターの初歩

# ローパスフィルターを感じる
先日購入した[デジタルオシロスコープ(OpenScope MZ)](https://akizukidenshi.com/catalog/g/gM-12461/)を有効活用しようと、ローパスフィルターにトライ。

## ローパスフィルター
ローパスフィルターは、もじどおり、低周波数成分を通し、高周波成分を通さないものである。単純回路的には、抵抗とコンデンサとが下記のような配置となるもの。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/448153b9-52f4-13a3-5868-ffd0dc5362ca.png)

### 三角波
ここでは、周波数成分をソフトウェア的に変化させたかったため、マイコンを利用することにした。以前、Wio Terminalで正弦波([MicroPythonを使ってみる(その4)&エレキ素人が何か考える(その7):DAコンバーター](https://qiita.com/infinite1oop/items/18024

元記事を表示

0から1ヶ月で量子エンジニアになるための手順書

さすがに誇大広告ですが

計算の仕組みを知ることや研究対象とすること、簡単な社会実装、準備は必要です。

量子エンジニアになりたいという方のために
要点の要点だけを抽出して、全体像がわかるような情報をまとめました。

# 量子力学

とりあえず2つの重要な性質を知るだけで良いです。

・重ね合わせ

・もつれ

# 線形代数と確率論

・量子ビットはベクトル

・量子演算に行列、テンソル

・量子状態の測定結果は確率的なので確率論

# 量子コンピューティング

## 量子ビット

・ブロッホ球

・多重量子ビット

・ベル状態

## ディラック記法

・ブラケット

・内積

・ベクトルの大きさ

・外積

・テンソル積

## 量子回路(ゲート方式)

### 1量子ビットゲート

・NOTゲート

・アダマールゲート(Hゲート)

・位相反転ゲート(Zゲート)

・パウリXゲート(Xゲート)

・パウリYゲート(Yゲート)

### 多量子ビットゲート

・制御NOTゲート(CNOTゲート)

・CUゲート

・SWAPゲート

・Toffoliゲート

## 量子アルゴリズム

元記事を表示

Google Colabで学ぶデータ可視化のデザイン

# 概要

このハンズオンでは[データ視覚化のデザイン(SBクリエイティブ株式会社)](https://www.amazon.co.jp/gp/product/4815604053/ref=as_li_ss_tl?ie=UTF8&linkCode=sl1&tag=yukari0623-22&linkId=f4dd72cd9a7290284df64cce1dca4fcc&language=ja_JP)の1~3章をもとに作成された**データ可視化におけるデザインのベストプラクティス**を体験できます。こちらの書籍ではTableauなどのBIツールを用いてグラフのデザインに関する説明がされていますが、このハンズオンではデータ分析でもよく使用されるPythonライブラリの可視化機能を用いてデザインの解説をします。

# ハンズオン

Google Colabでハンズオン[データ可視化のデザイン.ipynb](https://colab.research.google.com/drive/1Wu3Q5FGWmk6X2sUnk_gwtAu_tINdOXty?usp=sharing#scrollT

元記事を表示

WindowsでUnicodeDecodeError: ‘cp932’ codec can’t decode byte… が出たときの対処方法

## Case1. 自分で作ったところで発生した場合

1. 自分でopen関数などを書いた場合は対象のファイルがShift_JISであるかどうか確認します。
[chardet](https://pypi.org/project/chardet/)で確認することができます

“`python
import chardet
with open(file, “rb”) as f:
result = chardet.detect(f.read())
“`

1-1. ファイルがShift_JISでないならShift_JISに変換します。
“`python
with codecs.open(file, “r”, “utf-8”) as file:
row_data = []
for row in file:
row_data.append(row)

with codecs.open(file, “w”, “shift_jis”) as file:
for row in row_data:
file.write(row)

元記事を表示

ChatGPT Code Interpreterでコードを一切書かずにテレビゲームの売上分析をしてみた

# はじめに

2023年7月10日。ChatGPT Plusユーザー向けに、Code Interpreterプラグインの利用が開放されました。
このプラグインは任意のファイルをアップロードして、そのファイルに対してPythonのコードを実行することができます。
例えば、CSVファイルやExcelファイルを元にグラフを作成するなど、日本語で指示するだけでそれなりのものが出来上がります。凄すぎです。

数年前、東大の松尾研究室が主催しているデータサイエンティスト育成講座というものに参加しました。
そのときはPandas、Numpy、MatplotlibなどPythonのライブラリを使ってデータを可視化したり、回帰モデル・分類モデルを作成したりしました。

詳しくは別記事にしているので興味があれば参照ください。

– **[機械学習初心者がテレビゲームの売上データセットを使って回帰モデル・分類モデルを作成してみた](https://qiita.com/hamham/items/eb1a1f276631bb9334aa)**

今回は当時やったことをコードを一切書かずに、ChatGPTに日本

元記事を表示

djangoで所有者でないレコードにアクセスできないようにする

# はじめに
djangoで、Recordというモデルがあるとします。そのRecordには所有者(owner)というフィールドをもっているとします。更新画面のURLではRecordのプライマリキーを持たせるようにしていて各Recordの更新画面にアクセスしています。「ログインしているユーザー」と「アクセスしようとしているRecordの更新画面の所有者」が異なる場合、アクセスを拒否させたいです。これの実現方法を3つ模索しました。紹介していきます。

– get_object関数に所有判定を書く
– dispatch関数に所有判定を書く
– get関数に所有判定を書く

# get_object関数に所有判定を書く
### サンプルコード
“`.py
class RecordUpdateView(LoginRequiredMixin, UpdateView):
#…

def get_object(self, queryset=None):
# 所有者でないレコードにアクセスできないようにする
record = super().get_

元記事を表示

【Python】*argsとか**kwargsとかって何?

# はじめに

Kivyの[公式文書](https://kivy.org/doc/stable/api-kivy.uix.boxlayout.html)を眺めていたときに、超基本的メソッドである`add_widget`に書かれている`*args`や`**kwargs`の意味が分からなかったので、調べたことをまとめました。
(Kivyが分からない方でも大丈夫です!今回は全く使いません)

# 目次
– 環境のバージョン
– Pythonでの`*args`と`**kwargs`
– 参考文献

# 環境のバージョン
– macOS Ventura 13.4.1
– Python 3.11.2

# Pythonでの`*args`と`**kwargs`
## `*args`について
### ① 基礎の形

実際に簡単な例を紹介します。

“`python:example.py
def cal_sum(*args):
return sum(args)

def cal_sum_type(*args):
return type(args)

sum_a = cal_sum

元記事を表示

【Python】エラー「_csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)」と対処法

# 概要
PythonでCSVを読むコードを実装していたら以下のエラーになりました。
本記事では原因と解決方法を記載します。

“`
_csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)
“`

# 原因
発生する原因は、`csv`モジュールの`reader`オブジェクトに対して、バイト列を返してしまっているため。
文字列を返す必要があります。以下、どちらでも上述のエラーになります。

“`py
csvfile = request.FILES[‘file’]
reader = csv.DictReader(csvfile)
for row in reader:
“`

“`py
csvfile = request.FILES[‘file’]
decoded_file = csvfile.read() # バイト列として読み込んでいる
reader = csv.reader(decoded_file)
for row in reader:
“`

元記事を表示

python script directory

“`python
dir_path = os.path.dirname(os.path.realpath(__file__))
“`

元記事を表示

絵文字表

以下のテキスト ファイル

+ [https://unicode.org/Public/emoji/latest/emoji-sequences.txt](https://unicode.org/Public/emoji/latest/emoji-sequences.txt)
+ [https://unicode.org/Public/emoji/latest/emoji-test.txt](https://unicode.org/Public/emoji/latest/emoji-test.txt)

から生成した絵文字表です。絵文字表の文字をクリックするとクリップボードに文字をコピーしますが、埋込み CodePen の方は機能しません。

# 絵文字表(emoji-sequences版)

【Unity】UnityアプリとGCFを連携させてデバッグ端末管理システムを作った話【GoogleCloudFunction】【GoogleCloudSQL】

# TL;DR
– UnityからGCFを呼ぶ時はUnityWebRequestの設定を気をつけよう

https://qiita.com/Cova8bitdot/items/2aa8365f2dbbc1f2d81a

– NFCタグをスマホに貼る場合は金属対応シールを貼ったほうが読み取り精度が上がります
– 非エンジニア向けにスプレッドシートで見せるのは有効
– リマインダーBOTは端末棚卸しコストを減らせられるのでオススメ

# 概要

本記事は `Qiita Engineer Festa 2023〜私しか得しないニッチな技術でLT〜` で登壇した内容の文字起こし+α版になります。

スライドはこちらから

https://speakerdeck.com/cova8bitdots/20230714-qiita-lt

自分の所属するGraffity(株)は社員15人満たない小さなスタートアップですが、ARアプリを中心とした開発を行っているため、デバッグ用の端末が数多くあります。

– iPhone
– Android (Galaxy, ASUS, HUAWEI…)
– Nr

元記事を表示

週一でPython勉強会やってみる⑫

前回の続き

https://qiita.com/Waddy675/items/55790ab63ae8b844a1e4

最近悩みが尽きない人←

## スクレイピング
Pythonで自動化するという話をするとよくやる「スクレイピング」をやってみる。
スクレイピングは削り取る的な意味で、今回はHTMLの構造などを抽出する**Webスクレイピング**ができるかを試す。

メンバー1「実際よそのWebサイトの情報抜き取るって泥棒だよね」
総務省とかがスクレイピングしているなど色々ありますが、個人できちんと調べて、違法にならないかを確認すること。
Webサイト作る側はスクレイピングされたくなかったらきちんと対策しておきましょう。

今回はHTMLを扱うために**Beautiful Soup**を使用。(教科書通り

お題:弊社HPのヘッダー画像でもダウンロードしてみる。
“` py
import requests
from bs4 import BeautifulSoup

url = “弊社URL”

html = requests.get(url).text
soup = Beaut

元記事を表示

【PyTorch】RNN-Encoder-Decoder(seq2seq)モデル備忘録

## Embedding(単語埋め込み)とは

Embeddingとは、**文や単語、文字などの自然言語の構成要素のone-hotベクトルを、同じ階層の要素すべてが同じ空間に属し、かつより低次元のベクトルに変換すること**で、自然言語をニューラルネットワークで特徴量として扱えるようにできる。

最もシンプルな方法として、One-hot表現があり、表現したい構成要素を1、それ以外を0のベクトルへ変換する。One-hot表現では、各単語間の関係が表現できないやメモリ使用量が増大するなどの問題がある。

そこで、**分散表現(ベクトル空間に埋め込み、その空間上のひとつの点として捉える表現)** と **分布仮説(単語の意味は周囲の単語によって形成される)** を用いて、king – man + woman = queenなどの計算を可能にする**word2vec**というものが出てくる。word2vecは、3層のニューラルネットワークで、2種類に分けられ、周辺の単語から中心の単語を予測する**Skip-Gram法**と中心の単語から周辺の単語を予測する **CBOW(Continuous B

元記事を表示

開発ツールに頼らず 様々な言語から WebAssembly(第6回)

WebAssembly は多くのプログラム言語からライブラリの様に呼び出す事が出来る。
WebAssembly のコードを書く方法は多くの記事で書かれているが、その使い方はフレームワーク等のツールに頼っている事が多い様だ。
本記事では、そのような便利ツールに出来るだけ頼らず JavaScript, Rust, Python, Ruby から WebAssembly を実行する方法を記載する。

WebAssembly は新しい技術である。
目先の最先端ツールに飛びつくのもよいが、その基礎を学んで長く使える知識を身に着けないか?

本記事はシリーズの第6回である。シリーズ記事の一覧は [第1回] の **#シリーズ記事一覧** に載せている。シリーズの記事を追加する時は [第1回] の一覧を更新して通知を行うので興味の有る人は [第1回] をストックして欲しい。

# 本記事の概要と過去記事の復習

[第5回] では 1 個のグローバル変数を複数のインスタンス間で共有する方法について紹介した。
今回は、外部プログラムから共有する関数を切り替える事で WebAssembly の挙動を変更

元記事を表示

ロボット技術者向け 速習(4) リー群を用いた最適化

# はじめに

最適化(optimization)はロボット工学において非常に重要な技術であり、SLAM、経路計画、ロボットアーム運動など、さまざまな問題の解決に応用されている。
以前のシリーズでは、リー群とリー代数という概念について説明したが、今回は、実際の問題を通じて、リー群を用いた最適化について説明する。

**前編**
* [「3次元回転群」](https://qiita.com/scomup/items/fa9aed8870585e865117)
* [「3次元剛体変換群」](https://qiita.com/scomup/items/d82b35aeb1ecabd75e60)

# 最適化
最適化は、ある目的を達成するために、与えられた制約のもとで最良の解を見つける問題である。ここの目的は、問題に応じて異なるが、例えば、最小二乗問題の目的は、残差の平方和を最小化することである。

## 最小二乗問題とは
最小二乗問題は最も基本的な最適化問題であり、式(1)のように定式化される。
$$
\underset{x}{\textrm{argmin}} \quad F(x)

元記事を表示

LibreOffice マクロ:Pythonでのプログラム例集

情報の少ない Python でのサンプルプログラム。

# HelloWorld

# 最初の Item に “Hello World”

“`
import uno

def HelloWorldPythonItem0():

oDoc = XSCRIPTCONTEXT.getDocument()
oSlideList =oDoc.getDrawPages()

oSlide=oSlideList.getByIndex(0)
oItem=oSlide.getByIndex(0)
oItem.String=”HelloWorld”

return None
“`

Writer での挙動
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/cef01d45-6958-0a8d-f893-ebcf4dda93d2.png)

![image.png](https://qiita-image-store.s3.ap-nort

元記事を表示

LibreOffice マクロを Ubuntu + Python で作る

# 拡張を作るための基礎知識

拡張は .oxt というファイルとなり、以下の言語がサポートされています。

– Basic
– Python
– JavaScript
– Java
– BeanShell
– C++

今回は、python で試してみます。

# 環境

– Ubuntu 22.04 LTS
– LibreOffice Ubuntu package version: 1:7.3.7-0ubuntu0.22.04.3

# Python バインディングのインストール

“`

$ sudo apt install libreoffice-script-provider-python

“`

LibreOfficeを改めて起動すると、マクロの管理にPythonが現れます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/d8a98a42-b7e6-7a1c-54e6-af61d7897735.png)

Pythonマクロの保管場所は定まっていて、

元記事を表示

PythonとAIの密接な関係性!これから必須のプログラミングスキルを徹底解説

Python(パイソン)とは、その可読性と簡潔さから世界中のエンジニアに愛されているプログラミング言語です。特に、AI(人工知能)の分野ではその特性が生かされ、広く利用されています。Pythonは、ライブラリやフレームワークが豊富で、深層学習を行うためのTensorFlowやPyTorchといったツールが利用できます。これらのツールがPythonのシンプルな文法と結びつくことで、AI開発の敷居は格段に下がりました。

私自身もPythonを使ったAI開発に携わっており、その可能性と使いやすさには日々感動しています。特に注目すべきは、京都大学や東京大学など日本の名門大学で開発されているChainerやCupyといったPythonライブラリです。これらはPythonを使ったAI開発のパイオニア的存在であり、私自身もこれらを使ってAIの研究を行ってきました。

AIとPython(パイソン)の結びつき:GPUの力を引き出す手法と、日本の最先端事例を徹底解説

https://maricablog.com/?p=788

プログラミングの初心者でも大丈夫!Python(パイソン)を使った

元記事を表示

OTHERカテゴリの最新記事