- 0.0.1. fairseq導入時にハマったこと
- 0.0.2. 「テキストアナリティクスの基礎と実践」をpythonで読む4 トピック分析
- 0.0.3. pygameコピペ用
- 0.0.4. 典型90問003 Longest Circular RoadをPythonで解く!
- 0.0.5. DatadogでEDCBの録画ログ監視
- 0.0.6. 典型90問 002 Encyclopedia of Parentheses をPythonで解く!
- 0.0.7. TwitterAPIで特定ツイートの本文から日付を取得する方法
- 0.0.8. Pythonで変数名を文字列として扱う方法
- 0.0.9. JupyterLabでPlotlyを使うとグラフが表示されない件
- 0.0.10. コマンドパレットのようにインクリメンタルサーチして絞り込むWindowsアプリを作った
- 0.0.11. 避難施設の一覧表のPDFをCSVに変換
- 0.0.12. 顔向き(頭部姿勢)の取得
- 0.0.13. TensorFlowのModelClass入門
- 0.0.14. 強化学習で用いられる数学とそのコーディング
- 0.0.15. AutoTrainでテキスト分類
- 0.0.16. YOLOXでビデオ映像から人物の映っているフレームだけ抽出してみた
- 0.0.17. きれいに書きたいPythonプログラミング、マジックナンバーについて
- 0.0.18. Flaskメモアプリをデプロイする(2022.4.9)
- 1. 背景
- 2. 目的
- 3. 結果
- 4. 方法
fairseq導入時にハマったこと
# はじめに
対話システム作成のためにfairseqをインストールしようと思ったのですが,導入時に少しだけハマった部分があるので同じような方のために共有しておこうと思います.# 参考
https://github.com/pytorch/fairseq/issues/2546# No package metadata was found for fairseq
“`sh
git clone https://github.com/pytorch/fairseq
cd fairseq
pip install –editable ./
“`
上記コマンドでインストールしてから,
“`sh
fairseq-train
“`
コマンドを試しに打ってみた際に発生したエラーです.
公式githubのissueによるとパスが通っていないことが原因のようでした.
そこで以下を実行します.
“`py
! echo $PYTHONPATHimport os
os.environ[‘PYTHONPATH’] += “:/content/fairseq/”! echo $PYTHON
「テキストアナリティクスの基礎と実践」をpythonで読む4 トピック分析
この内容は金明哲さんの「テキストアナリティクスの基礎と実践」のRでの実装をpythonで書き換えながら読んでいくものです。
提供されているデータは、すでに形態素解析されてある程度集計されたデータとなります。説明が不十分であること、参考書通りの解析ができているわけではないことはご了承ください。
詳しくは本を読んでいただければと思います。前回
テキストの特徴分析
https://qiita.com/tanaka_benkyo/items/58f5ace6d7668688117f
## 4. トピック分析
### 4.1 トピックモデルとは
テキストにおける名詞は文章の主題や内容から大きく影響を受けるため、人による読みを経なくても、語句を集計したデータから、テキストの話題を推定できる可能性がある。
テキストをテキスト内に出現する毒と頻度によってのみ捉えるという点で、主成分分析や対応分析、潜在意味解析の手法と変わらないが、
線形代数の行列分解をベースとした方法では、高次元データの場合にデータの内在構造を十分に理解できない可能性がある。
このような問題の改善のため、**確率的潜在意
pygameコピペ用
## 基本的な部分
“`
import pygame as pg, sys
pg.init()
# スクリーンセット
screen = pg.display.set_mode((800, 600))##################
必要に応じて処理書く
################### 描画用のループ
while True:
# スクリーンの背景色
screen.fill(pg.Color(“WHITE”))
# 再描画
pg.display.update()
# 更新の速さ(1秒間に60回以下実行)
pg.time.Clock().tick(60)
# ウィンドウの閉じるを押したとき終了
for event in pg.event.get():
if event.type == pg.QUIT:
pg.quit()
sys.exit()“`
## テキスト
[pygame.font](https://www.pygame.org
典型90問003 Longest Circular RoadをPythonで解く!
# はじめに
AtCoder現在茶色(年内には緑が目標!)のあんこちゃん(@Chunky_RBP_chan)です。
典型問題は抑えとかねばということで、★2〜★5に取り組んでいます。
Pythonで取り組まれている方も多いと思うので自分の解答をシェアしたいと思います!
# 003 Longest Circular Road
https://atcoder.jp/contests/typical90/tasks/typical90_c## 解法
最も遠い(間にある街が最も多い)2つの街を見つけ、この2つの街をつなげれば良いです。
今回の問題ではどの街にも道がつながっており、N個の街に対して道の本数はN−1本であることからこれらの街が作るグラフは木になっています。
したがって問題は、
最も遠い2つの街を見つける → 木の直径(最もノードが含まれる経路)を見つける
と言い換えられます。
木の直径はBFSを二度行うことで求められ具体的には
・まず適当なノード(私の場合は0を選びました)からBFSを行い最も遠いノードAを探す。
・最も遠いノードAからBFSを行い、Aから最も遠いノードBまでの
DatadogでEDCBの録画ログ監視
## この記事でできること
以下のようにDatadogでEDCBの録画ログを収集することができます。

録画に失敗した場合は以下のようにSlack通知することができます。

## 前提条件
– Windows 10 or 11
– [EDCB (work-plus-s-220224)](https://github.com/xtne6f/EDCB/releases/tag/work-plus-s-220224)
– [td-age
典型90問 002 Encyclopedia of Parentheses をPythonで解く!
# はじめに
AtCoder現在茶色(年内には緑が目標!)のあんこちゃん(@Chunky_RBP_chan)です。
典型問題は抑えとかねばということで、★2〜★5に取り組んでいます。
Pythonで取り組まれている方も多いと思うので自分の解答をシェアしたいと思います!
# 002 Encyclopedia of Parentheses
https://atcoder.jp/contests/typical90/tasks/typical90_b## 解法
“(” → 0
“)” → 1
としてbit全探索を考えます。この場合、入力例3は
3→0011→(())
5→0101→()()
となり辞書順に調べられています。
また、制約が1<=N<=20なので2^20 ~ 10^6程度となりbit全探索は十分間に合います。 適切な文字列かは変数count(初期値は0)に対して "("は1を足す ")"は1を引く を文字列の左から順に行います。適切な文字列の条件は 「途中でcountが負にならない」かつ「文字列を調べ終わったときにcount=0」 でこれらの文字列の数が解答となります。 `
TwitterAPIで特定ツイートの本文から日付を取得する方法
# やりたいこと
特定のツイートの本文中から日付文字列を抽出して、datetime型のデータとして保持
他のdatetime型と比較したりGoogleスプレッドシートに格納する。
タイトルそのまんまですね。## 対象ツイート
【?4/10(日) 第11回 #レギオンリーグ 日程決定?】
レギオンリーグをプレイしてレジェンダリーメモリアを手に入れよう⭐️
▼第11回レギオンリーグ開催スケジュール
・エントリー期間
4/10(日) 17:00 ~ 4/14(木)23:59予定
・開催期間
4/15(金) ~ 4/20(水)予定
・結果発表
4/21(木) ~#ラスバレ pic.twitter.com/ep8xdcgvxM— アサルトリリィ Last Bullet(#ラスバレ)公式 (@assaultlily_lb) April 5, 2022
## 取得したい情報
本文中の「開催期間」の初日と最終日の日付情報
“` tweetest.py
datetime.datetime(2022, 4, 15, 0, 0)
datetime.datetime(2022, 4, 20, 23, 59)
“`
(時分は固定値を入力しています)## 環境
Python 3.9
tweepy
discord.py
gspreadhttps://qiita.com/shamimi367/items/996612e2e845fe9d1db3
ベースの動作環境はこちらのリンク先のDiscordのbotになっています。
# 作業手順
1. Twitter API(Elevated Acc
Pythonで変数名を文字列として扱う方法
# はじめに
pythonを扱っていて、ログの解析や処理の実行中に変数の中身がどうなってるのか調べたいことありますよね?
デバッガを使うのが一番簡単なのですが、
処理の中で頻繁に値が変わったり作動中のログに変数Aには何の値が今入ってるのか調べるには、実際に変数名と値を出力するのが一番簡単だと思います。## locals(), globals()を使わない
python 変数名 取得 などで調べるとまず出てくるのが 組み込み関数のlocals(), globals()を用いる方式です。
現在使用してる名前空間(シンボルテーブル?)にアクセスして、変数名と一致するものを探索して取得する方法です。参考: https://qiita.com/ragnar1904/items/55a21c521858802dc501
“`python
def hoge():
for variable_name, value in locals().items():
print(f”{variable_name} -> {value}”)
“`
現在の全ての変数名、値に対し
JupyterLabでPlotlyを使うとグラフが表示されない件
JupyterLabでPlotlyを使うとグラフが表示されず、対応に時間がかかったので覚書
### 環境
macOS Catalina 10.15.7
python3.8.0### 対応
① Node.js (安定版)をインストール(Homebrew使う)
“`shell
brew install nodebrew
nodebrew setup
echo ‘export PATH=$HOME/.nodebrew/current/bin:$PATH’ >> ~/.bash_profile
source ~/.bash_profile
nodebrew install stable
#最新版をインストールしたいときは
#nodebrew install latest
“`
② JupytarLabの機能を拡張
“`shell
jupyter labextension install jupyterlab-plotly;
“`### 参考URL
https://www.webdesignleaves.com/pr/jquery/node_installation_mac.
コマンドパレットのようにインクリメンタルサーチして絞り込むWindowsアプリを作った
# 3行で説明
– VSCodeのコマンドパレットや、いろいろなアプリについている、インクリメンタルサーチして絞り込む機能、便利ですよね。
– 単体アプリとして作って遊ぶと楽しそうです。
– [というわけで作りました。こちらからダウンロードできます。(やや実験的で、起動は遅く機能も限定的ですので、使うには遊び心が必要です)](https://github.com/cat2151/mini-incremental-search-filter)# 記事の目的は?
– 情報を共有することです。
– (きっと、Windows用の接続先を問わない汎用の単体アプリとして、機能が上位互換で、より起動が速いものがあるよね)と思っています。
– が見つかりませんでした。
– 近い機能を持つアプリは、知る範囲では :
– [percol](https://github.com/mooz/percol)
– [afxfazzy](https://github.com/yuratomo/afxtools)(便利です。あふwとセットで使っています)# 関連リンク
– [Percol |
避難施設の一覧表のPDFをCSVに変換
https://twitter.com/Naikakukanbo/status/1511622289842118658
# 説明
https://www.kokuminhogo.go.jp/hinan/list.html
上記から都道府県のファイルをダウンロードし「data.pdf」で保存
位置情報はYahoo!地図のURIより抽出
# プログラム
“`python
import urllib.parseimport pandas as pd
import pdfplumberdef uri2latlon(uri):
qs = urllib.parse.urlparse(uri).query
qs_d = urllib.parse.parse_qs(qs)
return pd.Series({“lat”: qs_d[“lat”][0], “lon”: qs_d[“lon”][0]})# 列名
col = [
“名称”,
“市町村名”,
“住所”,
“緊急一時避難施設”,
“コンクリート造”,
顔向き(頭部姿勢)の取得
# 目的
ライブへ行った際、ステージ上手下手だとどちらが良い席なのかと考える時がある。
これは、アーティストが左右どちらを向いている時間が多いか統計を取りたいと思い始めた。
当記事は、第一段階として顔向きを測定することを目的とする。# 環境準備
* Windows10にAnacondaインストール済み
* python3.9で仮想環境作成
* opencv、imutils、dlibのインストール
“`
conda install -c anaconda opencv
conda install -c conda-forge imutils
conda install -c conda-forge dlib
“`
* shape_predictor_68_face_landmarks.dat.bz2 を下記からダウンロード
http://dlib.net/files/
* ダウンロードして解凍したshape_predictor_68_face_landmarks.datを下記の.pyと同じフォルダに配置# コーディング
## 参考
* [PythonとOpenCV
TensorFlowのModelClass入門
# はじめに
TensorFlowのModelClassの知見が溜まってきたので、まとめたいと思います。
以下のサイトを引用しています。
https://www.tensorflow.org/guide/keras/custom_layers_and_models?hl=ja
# import
“`python
import tensorflow as tf
from tensorflow import keras
“`# 基本
“`python
class Linear(keras.layers.Layer):
def __init__(self, units=32, input_dim=32):
super(Linear, self).__init__()
w_init = tf.random_normal_initializer()
self.w = tf.Variable(
initial_value=w_init(shape=(input_dim, units), dtyp
強化学習で用いられる数学とそのコーディング
# はじめに[^1]
本記事は高校数学を基礎として強化学習を行う上でつまづきやすいところを選出しています。本記事に掲載されていない部分で引っかかる場合は、高校数学を復習して見ると、答えが見つかるかもしれません。
環境は、colabとTensorFlow2.x系を使用しています。| 名称 | 意味 |
|:—:|:—|
| P(A|B) |条件BのもとでのAの確率|
| x~P(x) |確率変数xは分布Pを持つ|
| [a, b] |aとbを含む実区間|
| (a, b] |aを除き、bを含む実区間|
| A:=B |AはBと定義する|
|clip(A,min,max) | min ≤ A ≤ max の場合はA
又は – A < min の場合は min
又は – max < A の場合は max | | θt+1←θt+α∇J(θt) |θt+1をθt+α∇J(θt)で更新する| # よく使われる数学 ## ①確率分布 ```math a_t \sim \pi(\cdot | x_t) \\ 意味:確率変数a_tは分布\pi(a_t
AutoTrainでテキスト分類
# AutoTrain???とは
ノーコードでテキスト分類や要約などがstate-of-the-artできるサービスです。AutoNLPだとググラビリティが低かったので名称が変わったのだと思います。
https://huggingface.co/autotrain
And AutoNLP becomes…
??✨ AutoTrain ✨??
Proud to announce @huggingface automatic training solution extends to other modalities! ?️???
Can you guess what will be the first non-text task supported?
— Simon Brandeis (@SimonBrandeis) March 22, 2022
# データ準備
livedoorニュースコーパスのタイトルと本文を結合して、9つのカテゴリを分類しようと思います。
https://www.rondhuit.com/download.html#news%20corpus
“`python
!wget https://www.rondhuit.com/download/ldcc-20140209.t
YOLOXでビデオ映像から人物の映っているフレームだけ抽出してみた
# 0.はじめに
ビデオ映像から人が映っているフレームだけを取り出したい、と思ったことはないでしょうか。1時間のビデオ映像で人が映っているのが3分の場合、そこを探して取り出す、というのは人手ではなかなか手間です。こうした手間を削減するため、物体検出DNNを使って人物が映っているフレームのみを切り出したビデオ映像を再構成することで、映像チェックの負担を下げることを試みました。
物体検出DNNとしては、2021年7月に発表された[YOLOX]を使用しました。さまざまな大きさの事前学習モデルが公開されているので、実行環境や処理内容に応じて選択でき、また使い勝手がよかったためです。コードも[YOLOX github]上で[Apache License 2.0](https://github.com/Megvii-BaseDetection/YOLOX/blob/main/LICENSE)で公開されているものを使いました。
ここでは、以下の流れで説明します。
– 作業の方針
– 人物検出コードの説明
– 実行
– 誤検出への対応
– まとめ# 1.作業の方針
この作業では、極力自前
きれいに書きたいPythonプログラミング、マジックナンバーについて
# まとめ
1. その意味や意図が記述した本人以外には自明では数値や文字列を**マジックナンバー**と呼ぶ。
2. **マジックナンバー**は、1.から意図が読みにくいので避けるべき。
3. 1.にもある通り数字だけでなく文字列でも**マジックナンバー**を避けるべき。# 参考文献
1.は`Python`できれいなコードを書くためのヒントをまとめた書籍となっています。2.は、**マジックナンバー**の辞書的な意味を調べるのに使いました。1. https://book.mynavi.jp/ec/products/detail/id=127578
2. https://e-words.jp/w/%E3%83%9E%E3%82%B8%E3%83%83%E3%82%AF%E3%83%8A%E3%83%B3%E3%83%90%E3%83%BC.html# 具体例:数値のマジックナンバーについて
本記事ではまず、1時間15分の試験を今から始めた場合の試験終了時刻を求めた値を`time_limit`という変数に格納するような操作を考えます。### よくないと思われるマジックナンバー(
Flaskメモアプリをデプロイする(2022.4.9)
背景
職場でFlaskを使う必要が出てきました。その本には「物体検知アプリ&機械学習APIの作り方」と書いており、折角なので軽くFlaskに触れながら深層学習アプリの作り方を学びたいと思いました。
目的
Flaskアプリをデプロイします。Flaskに慣れるためにDjangoでやった時の様にメモアプリのデプロイから始めます。
結果
[【保存版】30分でFlask入門!Webアプリの作り方をPythonエンジニアが解説](https://tech-diary.net/flask-introduction/)を参考に以下の様にアプリをデプロイ出来ました。著者の「はたやす」さんにお礼を申し上げつつ、本記事を書かせて頂いています。
方法
1. 簡単なメモアプリを作る
1.
vscodeに導入したblackが機能しない
## はじめに
[これ](https://qiita.com/tsu_0514/items/2d52c7bf79cd62d4af4a)と[これ](https://qiita.com/sin9270/items/85e2dab4c0144c79987d)を参考にflake8とBlackを導入したものの、保存時にblackの自動整形が行われない## 状況
setting.jsonを以下の様に設定
“`json:settings.json
{
“python.linting.enabled”: true,
“python.linting.pylintEnabled”: false,
“python.linting.flake8Enabled”: true,
“python.linting.lintOnSave”: true,
“python.formatting.provider”: “black”,
“editor.formatOnSave”: true,
“editor.formatOnPaste”: false,
argparseのノート
# narg
`nargs=*`で引数が無い時の挙動が位置引数とオプション引数で違う.
“` python test.py
parser = argparse.ArgumentParser()
parser.add_argument(‘infile’, nargs=’*’)
parser.add_argument(‘-f’, ‘–foo’, nargs=’*’)
args = parser.parse_args()print(args.infile)
print(args.foo)
“`引数なしで実行
“` zsh
python3 test.py[]
None
“`
位置引数は空のリストになるが,オプション引数はNoneになる.`-f`だけつけて引数なしの場合
“` zsh
$ python3 test.py[]
[]
“`
この場合は空のリストになる.# helpをプリントする方法
“` python test.py
parser = argparse.ArgumentParser()
parser.add_argument(‘infil