Python3関連のことを調べてみた2021年11月27日

Python3関連のことを調べてみた2021年11月27日

Python3: cos類似度を計算 (ginza)

こちらと同じことを ginza で行いました。
[Python3: cos類似度を計算 (janome)](https://qiita.com/ekzemplaro/items/f43ab16e9e4a5ba84d44)
[Python3: cos類似度を計算 (Mecab)](https://qiita.com/ekzemplaro/items/33b4067086739b109ed9)

次のページを参考にしました。
[何もない所から一瞬で、自然言語処理と係り受け解析をライブコーディングする手品を、LTでやってみた話](https://qiita.com/youwht/items/b047225a6fc356fd56ee)

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

“`bash
pip3 install tqdm
“`

“`py:ginza_check.py
#! /usr/bin/python
#
# ginza_check.py
# Nov/27/2021
# ——————————————————–

元記事を表示

Python3: cos類似度を計算 (Mecab)

こちらと同じことを Mecab で行いました。
[Python3: cos類似度を計算 (janome)](https://qiita.com/ekzemplaro/items/f43ab16e9e4a5ba84d44)

次のページを参考にしました。
[PythonのMeCabで形態素解析!Tf-idfとCos類似度で文書の類似度を算出してみよう!](https://toukei-lab.com/python-mecab)

“`py:mecab_check.py
#! /usr/bin/python
#
# mecab_check.py
# Nov/27/2021
# ——————————————————————
import sys
import MeCab
import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer

# ——————————–

元記事を表示

Python3: cos類似度を計算 (janome)

次のページを参考にしました。
[Pythonで「Bag Of Words」を使い文章の類似度を調べる【自然言語処理】](https://yu-nix.com/blog/2020/12/14/python-bow/)

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

“`bash
pip install janome
“`

“`py:similarity_check.py
#! /usr/bin/python
#
# similarity_check.py
# Nov/27/2021
# ——————————————————————
from janome.tokenizer import Tokenizer
import numpy as np
import sys

# ——————————————————————
def gen_toks_list(sentence_list):
“””
文章のリストをJa

元記事を表示

【AWS Athena】クエリ実行結果を高速に取得する v2【Python】

# はじめに
Python3上でSQLを書き、[awswrangler](https://pypi.org/project/awswrangler/)を使用してデータを取得する方法を紹介します。
タイトルの「高速に取得する v2」ですが、以前書いた記事

[【AWS Athena】クエリ実行結果のデータを高速にPandas.DataFrameとして取得する](https://qiita.com/nijigen_plot/items/02051f09eee3a2dee2c2)

の続編的な形になるため、そのように書いています。
Python3上でSQLを書いてデータを取得するときは、**pyathenaよりawswranglerのほうが圧倒的に早いよ** ということを書きたいというのが趣旨です。

# 環境・使用ライブラリ

2種類あります
それぞれ箇条書きのリンク先は実際に計測したcolaboratoryとなっています

## colaboratory (Python 3.7.12)

– [pyathena側](https://colab.research.google.com/d

元記事を表示

AOJトライに関する知識知見の記録共有:Volume0-0051

# タスク概要

Differential II

https://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0051

# コード実装例
TIPS

1. 例外処理含む評価パターンを追加
1. 入力値の小数対応

“`Python
import pprint, sys, time
import itertools

def core(arg, acc=False):
if acc:
pass
else:
perms = list(itertools.permutations(str(arg)))
M, m = [float(“”.join(f(perms))) for f in [max, min]]
return [M, m, M – m]

def app(*args):
ret = []
for arg in args:
st = time.time()
try:
r =

元記事を表示

【Python3】0から作るPython初心者プログラミング【03】-大人数でじゃんけんプログラム-

#【ご挨拶】こんにちは! ぬかさんエンジニアリングです。(3回目‼)
前回の投稿にまたまたありがたいことにコメント頂きまして、**クラス**の使い方について教えて頂きました。
今回は、それらの内容も含めた上で**複数人同時にじゃんけんが出来るようにアップデート**した内容になっております。
**クラス**を使って実際に遊べる程度のプログラムを作ってみたいと思っていた初心者の方がいらっしゃいましたら是非挑戦してみてください!また、複数の**インスタンス**をまとめて扱う方法や特殊**メソッド**`__str__`など少し応用的な話もありますので、既にクラスを理解されている方も興味があれば見ていってくださいね!
**LGTM**も是非よろしくお願いし

元記事を表示

Ginza の使い方

[GiNZA – Japanese NLP Library](https://megagonlabs.github.io/ginza/)
の使い方です。

インストール

“`bash
pip install -U ginza ja-ginza
“`

パスを通す

“`bash
export PATH=$PATH:/home/uchida/.local/bin
“`

固有名詞の抽出を行いました。
こちらと同じプログラムです。
[ubuntu 21.10 に mecab をインストール](https://qiita.com/ekzemplaro/items/c98c7f6698f130b55d53)

“`py:pickup_propn.py
#! /usr/bin/python
#
# pickup_propn.py
# Nov/26/2021
#
import spacy
nlp = spacy.load(‘ja_ginza’)
text_in = “特急はくたかで富山に向かいます。それから、金沢に行って、兼六園に行きます。”
doc = nlp(text_in

元記事を表示

Python リスト


title: Python リスト
tags: Python Python3
author: Hirakawa123
slide: false

#はじめに
基礎から定着させていこうということでリストについてまとめました。
Python 3.8.2

##リストの作成
“`py
l = [1,2,3,4,5,6,7,8]
“`
##リストを表示する
“`py
l = [1,2,3,4,5,6,7,8]

print(l)
“`
##リストのタイプの確認
“`py
l = [1,2,3,4,5,6,7,8]

print(type(l))
“`
##リストにいくつ値が入っているのか
“`py
l = [1,2,3,4,5,6,7,8]

print(len(l))
“`
##リストの一部を取得する
“`py
l = [1,2,3,4,5,6,7,8]

print(l[0])
print(l[-1])
print(l[1:3])
print(l[:6])
“`
##リストのスキップして取得する
“`py
l = [1,2,3,4,5,6,7,8]

元記事を表示

Python: mutableオブジェクトとimmutableオブジェクトを理解する

## はじめに

みなさんはmutable(ミュータブル)オブジェクト、immutable(イミュータブル)オブジェクトの違いについて、理解しているだろうか?大抵の場合「変更できるのがmutable、変更できないのがimmutable」のような答えが返ってくる。もちろん間違いではないのだが、変更できないというのは具体的にどういうことかと聞くと答えに窮する方が多かったので、本記事で整理しておく。

## 準備知識

### id()

Pythonのbuilt-in関数である**[id()](https://docs.python.org/3.8/library/functions.html#id)**は、メモリ内のオブジェクトのアドレス(位置)のIDを整数で返す。本記事では、メモリアドレスを16進数で表現するために**[hex()](https://docs.python.org/3.8/library/functions.html#hex)**を併用する。なお、Pythonの比較演算子である**is**がTrueになるのは、2つの変数が同じidを返す時である。( = 2つの変数が同一

元記事を表示

Pythonで認証・CRUD無しの簡易APIサーバを作る方法

Pythonで本格的なAPIサーバを作ろうとすると「Django REST Framework」が真っ先に思い浮かぶと思いますが、簡易的にAPIレスポンスが欲しい時もあると思います。

ここでは、ローカルホスト上でPythonから、認証・CRUD無しでhttpレスポンスを返す方法を2つ紹介します。

### 注意事項
下記方法ではCSRFの対策を行なっていません。
本番環境で使用する際には、他の方法で正しい(想定したサイトの想定したユーザーから受け取った)リクエストかどうかを検証する必要があります。

# Python WSGI を使う方法
一番簡易的に使えるのは、Pythonの標準インターフェイスであるWSGI(Web Server Gateway Interface)を使う方法です。

WSGIの詳細について、調べれば詳しい記載が出てくると思いますが、今回は簡単にPOSTされたデータを返すAPIサーバを例に挙げます。

“`python:test_api.py
from wsgiref.simple_server import make_server
import json

d

元記事を表示

paiza練習問題(文字列の表示)

# 目次
– 解いた問題
– 参考にしたサイト
– 振返り
– 参考コード

### 本文
– 解いた問題

https://paiza.jp/works/mondai/prob60/substring_9

– 参考にしたサイト

なし

– 振返り
文字列の○番目から○番目を表示する問題。
1文字目を0番目と数えることに注意。

– 参考コード(文字列の3番目から6番目を表示)

“`python
a = “tokugawa ieyasu”
print(a[2:6])
# kuga
#print(a[3:6])ではないことに注意
#t o k u g a w a _ i e y a s u
#0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
“`

元記事を表示

paiza練習問題(ランクC:リスト内の値の比較)

# 目次
– 解いた問題
– 参考にしたサイト
– 振返り
– 参考コード

### 本文
– 解いた問題

https://paiza.jp/works/mondai/prob60/total_value_9

– 参考にしたサイト

https://note.nkmk.me/python-list-str-num-conversion/

– 振返り
リスト内の要素が数字の場合すぐにint型に変えたくなるが解説を見ると必要なときに都度int型に変更するのでもいいのかも。上記参考サイトはリスト内のstr型をint型に変更する単に参照しました。

– 参考コード(文字列リストを数値型に変換)

“`python
a = [“1”, “2”, “3”]
int_a = [int(i) for i in a]
print(int_a)
#[1, 2, 3]
“`

元記事を表示

【Python】RedmineチケットのカスタムフィールドにPythonからファイル添付する

PythonでRedmine APIを操作するための`python-redmine`モジュールを使用したファイルタイプのカスタムフィールド更新を説明したいと思います。

# 通常のカスタムフィールド更新方法

ファイルタイプの更新方法について説明する前に、通常のカスタムフィールドの更新方法をおさらいします。

`redminelib`はPythonでRedmine APIを使用するためのモジュールです。
`pip install python-redmine`でインストールできます。

ざっくりとした流れは、以下です。

1. Redmineの接続情報(APIキーとURL)を指定
1. チケットIDを指定
1. カスタムフィールドIDを指定(分からない場合は、カスタムフィールド名から求める)
1. チケットIDとカスタムフィールドID・カスタムフィールドに設定する値を指定して、チケットを更新

詳細はソースのコメントに書いています。

“`python:通常のカスタムフィールドの更新
from redminelib import Redmine

# Redmine接続情報

##

元記事を表示

【前編】Pythonでカンタン画像解析~タピオカはいくつ?~ を手直ししてみた

初投稿!

プログラム初心者なので、間違えてたらごめんなさい。

タイトルのサンプルコードが動いたのでメモがわりに(^ω^)

Pythonの画像処理をやってみようと思い、検索したらこちらの記事が目に入りました。

https://rightcode.co.jp/blog/information-technology/python-image-analysis-hsv-tapioca

画像解析初心者でしたのでサンプルコードをそのままコピーしたのですが・・・。そもそもコンパイルエラー(´;ω;`)

何が悪かったのか、他の記事も検索してみました。

すると、初心者の私でも分かりやすい記事が!

https://tech-blog.rakus.co.jp/entry/20201225/open-cv

(てか、画像解析触れたかっただけだから、これで終わりにすれば良かったなw)

この記事のサンプルコードをとりあえずコピー・・・(笑)

“`perl:Image_processing_Experience.py
import cv2

filename = “tapioca_drink.

元記事を表示

Pythonでマイクロサービスの作成

#準備
Python環境の用意→インストールは[こちら](https://www.python.org/downloads/)から
Flaskのインストール

“`
$ pip install flask
“`
sqlachemyのインストール

“`
$ pip install sqlachemy
“`
requestsのインストール

“`
$ pip install requests
“`

DBの用意(今回はSQLite3)

#実行環境
MacOS 11.4
Python 3.9.0
SQLite 3.32.3
requests 2.24.0
sqlachemy 1.4.26
Flask 2.0.2

#webサーバーを立てる
今回は, ブラウザ上で選択したアイテムの値段を計算するwebサイトをマイクロサービスアーキテクチャもどきで作成する.
今回の機能としては以下の2つ
①dbに登録されている商品と値段を表示する
②選択した商品のみの表示

“`main.py
import json
import os

from flask import Flask,

元記事を表示

Django の JWT クライアント

Django の JWT クライアントです。
Django のサーバーはこちらのものを使いました。
[ジャンゴ(django)でJWTを使う方法](https://dev-yakuza.posstree.com/django/jwt/)
[django-rest-framework-jwt](https://github.com/jpadilla/django-rest-framework-jwt/) を使っています。

Django のバージョン

“`text
$ django-admin –version
3.1.4
“`

#token を与えないでエラーが出ることを確認#

“`bash:go_check.sh
http http://localhost:8000/api/blog/posts/
“`

実行結果

“`text
$ ./go_check.sh
HTTP/1.1 401 Unauthorized
Allow: GET, OPTIONS
Content-Length: 58
Content-Type: application/json
Date:

元記事を表示

pythonで作る数当てゲーム

1~100のランダムな数字を当てるゲームです。

“`python:kazuate.py
import random
count = 1
answer = random.randint(1,100)

while True:
number = input(‘1~100の間で数字を入力してください >> ‘)
if number.isdecimal():
number = int(number)
else:
print(‘間違った入力がされました。\n’
‘もう一度数字の入力をお願いします。’)
continue

if answer == number:
print(f’正解です。正解は{answer}。’)
print(f'{count}回目のチャレンジで正解しました。’)
break
elif answer > number:
print(f’入力された数字は{number}。それより大きい数です。’

元記事を表示

Python3エンジニア認定試験の勉強

#Pythonエンジニア認定試験
受けてみました。勉強時間は2日間(約10時間)。
CBTで、受験料は1万円。

##筆者のスペック
転職ついでに2020年に2週間ほどかけて無料のPythonセミナーを受けるも、
ほぼ理解できなかった。クラスやpandas分析までやった記憶はあるが、
「printは覚えたぞ!」程度で終了。
それから1年半の間ほぼpython使わずにいたらさっぱり分からなくなった。
仕事で無理やり使ったりしていた程度。(以下参照)
※ファイルのコピーをコマンドではなくPythonを使ってみる
※SQLデータを敢えてPythonで出力してみる
※ネットに落ちてるコードをコピーして形態素解析してみる
※とりあえずProphetが動くようにしてみる

##勉強方法
①過去問を解き続ける
②間違えたところをググる

###①過去問を解き続ける
以下サイトに会員登録して、
・知らない問題が出てこなくなるまで
・950点以上になるまで
繰り返し解いた。
850点→650点→550点→750点→850点→950点
というような推移だった記憶がある。

https://diver.di

元記事を表示

インターネット接続にプロキシサーバ必須な環境にて、PythonのSMTPクライアントでGmailからメールを送る方法

#本記事の内容
– インターネット接続にプロキシサーバ利用が必須な環境において、Gmailからメールを送れるPythonアプリを実装します。メールプロトコルはSMTPです。

Gmailのsmtpサーバを用いて、Pythonからメールを送りたかったのですが、
インターネット接続のためにプロキシサーバを経由させる必要がでたので、対応方法を調査してまとめました。

例えば、企業内の内部ネットワークやクラウドにおける内部ネットワークからのメール送信等、インターネット接続にプロキシサーバ利用が必要となるプライベートなネットワーク環境でPythonアプリを動かすことを想定しています。
きっと状況としては、よくあるはず。何かの役に立てば幸いです。

#実施環境
– Windows 10
– Visual Studio Code
– Python 3.8

#手順の流れ
1. Googleアカウントでのアプリ認証用のパスワード発行
2. SMTPでプロキシ設定できるPythonライブラリのインストール
3. Pythonプログラムの作成と実行

## 1. Googleアカウントでのアプリ認証用の

元記事を表示

Windows で「有効なフォントファイルではありません」と表示される場合の対処法

# イントロダクション

フォント画像の描かれた SVG から、FontForge で Python Script を使用して ttf のフォントファイルを作成しました。
その際以下のアラートが出て、フォントを利用できないことがありました。

![invalid_font_alert.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33738/99ad82bb-f75e-2ef1-7315-e42c1ac25915.png)

# ENV

– Windows10
– FontForge

# 原因

! (半角ビックリマーク)が指定されていない。

## 解説

「!」は UTF-8 で U0021 という文字コードを割り当てられています。これは制御文字を除くと一番先頭の文字コードになるため、恐らく Windows ではフォントファイルの有効性を確認するアルゴリズムとして「!」の有無を見ているのだと思います。

ちなみに「!」に空白の画像を指定しても「有効なフォントファイルではありません」と出てプレビュ

元記事を表示

OTHERカテゴリの最新記事