- 1. Word2Vecを使ってFAQ検索精度向上を目指した話
- 2. 良いコードは良い名前から生まれる – Good Concepts in Programming –
- 3. Pythonでファイルの命名に時刻を用いる方法 ※Google colabでdatetimeを使用
- 4. Pythonにおける日本(東京)時刻の取得 ※Google colabでdatetimeを使用
- 5. 【Python×API】ポケモンを検索するアプリ
- 6. PythonによるJWTの実装入門
- 7. ABC275をPythonとC++で
- 8. AWS Lambdaで現在日時(処理年月日時)を取得したい
- 9. 高速でファイルやディレクトリをコピーするにはPython? Linuxコマンド?
- 10. [Python] 16進数→10進数変換(intを使用)のエンディアン調査
- 11. Azure Synapse Analytics Dedicated SQL pool ( 専用 SQL プール) における Merge(Upsert)処理の性能検証を実施する方法
- 12. 【試行錯誤】OpenAI Whisperを活用した日本語歌詞のforced-alignment リンクまとめ
- 13. 【試行錯誤】OpenAI Whisperを活用した日本語歌詞のforced-alignment その7:最初から最後まで処理をつなげる
- 14. python初心者が、地元の積雪量予測をしてみた
- 15. Python & AWS(Lambda/API Gateway)によるLINE Bot作成
- 16. 未経験エンジニアと学ぶデザインパターン(Pub/Sub編)
- 17. Pythonでちゃんと統計・確率の基礎をやってみた(確率編2/3)
- 18. YOLOXの映像解析で車両の速度をAIで算出して渋滞を判定するのに苦労した~その2:速度算出手法編
- 19. OpenAI Whisper のコマンドオプション
- 20. FT232Hとmcp3004でPCにアナログ入力
Word2Vecを使ってFAQ検索精度向上を目指した話
# 概要
ctcの社内FAQについてWord2Vecを用いてあいまい検索できるように実装をしたので、その際の内容を備忘録的にまとめていきます。見様見まねでやっているので間違っている部分がありましたら申し訳ございません。
# 背景
社内システムにおけるよくある質問をFAQにして提供しているが、検索は全文一致する必要がありユーザーが希望するFAQにたどり着けないケースがありました。
例えば「スマートフォンのパスコードを忘れた」というFAQを検索したい場合、「スマホ」や「iPhone」といった類義語ではヒットしません。そのため従来はFAQのタグ機能や本文内で関連するワードを入れたりして類義語でもヒットするようにしていたが、FAQ作成者の書き方に依存する部分がありました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1481306/06b5de5e-4bd8-f211-4560-70ea2a9ae6c4.png)# 解決策
日本語Wikipediaの文章を学習したWord2Vecを用
良いコードは良い名前から生まれる – Good Concepts in Programming –
# 概要
プログラミングの良い概念を理解するとプログラマーレベルが上がると考えています。
良い概念は特定のプログラミング言語に縛られないので、様々なプログラミング言語で役に立ちます。
前回は[やらない理由を書いてやらない(早期リターン)](https://qiita.com/masaki_nakada_ari/items/b702b38c4ac2dee7561d)を紹介しました。
今回紹介する良い概念は「良いコードは良い名前から生まれる」です。# 良い名前から良いコードが生まれるとは
プログラミングでは変数名、関数名、クラス名などに名前を付けなければいけません。
人間がコードを理解するときにコードの可読性はとても重要です。
意味のある名前を付けるとコードの可読性は抜群に上がります。# サンプルコード
名前の付け方でコードの見え方に違いがあるのでしょうか?
意味のない名前を付けたコードと意味のある名前を付けたコードを比較してみましょう。## 1.変数名に良い名前を付ける
商品の税込金額を計算するサンプルコードです。“` bad_variable_name.js
// a
Pythonでファイルの命名に時刻を用いる方法 ※Google colabでdatetimeを使用
# Pythonでファイルの命名に時刻を用いる方法について書く。
※2022/11/1 09:00 環境に関して追記。
*このコードはGoogle colabで使用することを想定しています。*
## 目的
**Google colab上で日本時間を取得して格納すること**
**日本時間をファイル名に用いること**コンペなどを行う際に、csvファイルの名前をどうつけるかで迷ったことがないだろうか、
その際に、**現在時刻でファイル名を自動で決められたら楽**だと思って、こちらにコードを示します。まず現在の時刻を取得する方法は前の記事で示したように下記のコードである。
“`python
import datetime
from pytz import timezone
now = datetime.datetime.now() #現在時刻生成
now = now.astimezone(timezone(‘Asia/Tokyo’)) #タイムゾーンを東京に
“`https://qiita.com/hinata1119/items/0835dea5d16b70e
Pythonにおける日本(東京)時刻の取得 ※Google colabでdatetimeを使用
# Pythonにおける日本時刻の取得について書く。
※2022/11/1 09:00 環境に関して追記。
*このコードはGoogle colabで使用することを想定しています。*
## 目的
**Google colab上で日本時間を取得して格納すること**まず一般的に現在の時刻を取得する方法は下記のコードである。
“`python
import datetime
now = datetime.datetime.now()
“`
しかし、これは**UTC時刻**であり、**日本時刻**とは違います。
Google Colabでは協定世界時をデフォルトにしているため、これを日本時間に直す必要があります。## 日本時間の取得方法
“`python
import datetime
from pytz import timezone
now = datetime.datetime.now() #現在時刻生成
now = now.astimezone(timezone(‘Asia/Tokyo’)) #タイムゾーンを東京に
“`上記を付け加えることで、**
【Python×API】ポケモンを検索するアプリ
# 初めに
どうやらポケモンのデータを取得することができるAPIが存在するらしい。。
得られるデータは「名前」「図鑑ID」「タイプ」「ポケモンの画像」など!使い方は簡単で、以下のURLにIDを入れるだけです。
※名前で検索することも可能らしい。。丁度PythonでWebAPIの呼び方を備忘録としてまとめようと
考えていたので、どうせなら面白そうな内容と考えこの記事を作成しました!早速使ってみましょう!!!
### PokéAPI
https://pokeapi.co/# 例
例えばイーブイ(No.133)を表示する際は、以下の通り指定する必要があります。名前指定:https://pokeapi.co/api/v2/pokemon/eevee/
図鑑№指定:https://pokeapi.co/api/v2/pokemon/133/「eecee」はポケモンの名前、「133」は図鑑IDになります。
上記のように指定すると、ポケモンの情報が取得できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.
PythonによるJWTの実装入門
# そもそもJWTとは?
・[【JWT】 入門](https://qiita.com/knaot0/items/8427918564400968bd2b)
この記事がわかりやすかったので参考までに・API認証やアクセス制御などで用いられる規格の一つ。
・公開鍵暗号に基づくメッセージ認証コードにより改ざんやなりすましを防ぐ。
・JWT(JSON Web Token)でジョットと読む。# JWTのストラクチャ
ヘッダー、ペイロード、署名(シグネチャ)の3つの要素からなる。
それぞれが`.`で区切られている。“`c:ざっくりしたイメージ
xxxx.yyyy.zzzz
“`“`c:実際のJWT
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.
t42p4AHef69Tyyi88U6+p0utZYYrg7mmCGhoAd7Zffs
“`### ヘッダー
ヘッダーは通常、トークンの種類(JW
ABC275をPythonとC++で
# 0 はじめに
## 0-1 記事について
AtCoder Beginner Contest 275の解説です。
実装はPythonとC++で書きます。
公式解説と違いがあるかも知れませんがご了承。
問題の本質が簡素過ぎる場合は、問題文の欄には問題の要約を載せています。(面倒なだけ)
ミス等発見されましたらコメント欄にお願いします。# 1 ABC275 解説
## 1-1 個人的な感想
たのしい回でした。
Diffは、Aが灰前半、Bが灰後半、Cが緑前半、Dが茶後半、Eが水前半、Fが水後半といった感じです。
Cで沼りましたがEをササっと通したので割とよいPerfが取れ、14増えました。
Perf:1361 Rating:1234→1248(+14)## 1-2 A問題 Find Takahashi
### 問題
長さが$N$の整数列$H$が与えられるので、$H$の最大の要素が$H$の何項目なのか求めて下さい。
尚、$H$のうちどの異なる$2$要素も相異なります。#### 制約
・$1 \leq N \leq 100$
・$1 \leq H_i \leq 10^9$#
AWS Lambdaで現在日時(処理年月日時)を取得したい
# 経緯
Lambdaで処理年月日時を取得する際につまづいたので記述する。# datetimeモジュールのオブジェクト
– datetime :日付と時刻を扱う
– date:日付を扱う
– time:時刻を扱う
– timedelta:時間差を扱う# 間違った例 1
~~~python:Python
from datetime import datetime
# 処理年月日を取得
processingDate = datetime.datetime.today()
# エラー文
AttributeError: type object ‘datetime.datetime’ has no attribute ‘datetime’
~~~
そもそも
– from — import ~~~文を理解してなかった
– モジュールとオブジェクトの概念もよくわかってなかったため適当に書いてた(笑)
※from datetime import datetimeと書いたら ___メソッドの先頭は省略できる。(むしろ省略しないと怒られる)___
_
高速でファイルやディレクトリをコピーするにはPython? Linuxコマンド?
# 高速に大量のファイルをコピーしたい
shutilのコピー時間にストレスを感じたことありませんか?
機械学習の何万枚ものデータセットをコピーするのとか、Colabの継続可能時間に収まりません。# Linuxコマンドが速い
結論から言うと、PythonよりLinuxコマンドでコピーしたほうがずっと速いです。
# 比較
jpg画像が500枚入ったディレクトリをGoogleドライブからColabにコピーする速度を比較します。### Python
“`python
shutil.copytree(‘source’,’dest’)
“`15秒
### Linuxコマンド
“`shell
cp -R sorce dest
“`1.2秒
**10倍以上速いです**
# ちなみにGoogleDriveとColabで数万枚のデータを扱うには
ColabからGoogleDriveをマウントして数万枚のファイルを一気に扱うと、いつまで経っても処理が終わりません。
これは、ドライブの仕様のようです。タイムアウトが発生します。
5000枚程度にディレクトリに分割して処理
[Python] 16進数→10進数変換(intを使用)のエンディアン調査
## 目的
intを使用した16進数→10進数変換のエンディアン(バイトオーダを調査する)## 確認方法
0x0110をinputに結果を確認する。ビッグエンディアンの場合 → 0110 → 272
リアルエンディアンの場合 → 1001 → 4097## プログラム
“`Python
print(int(‘0110′, 16))
“`## 結果
“`
272
“`## 結論
ビッグエンディアン## 補足
下記でlittleエンディアンで読み込めることを確認。
“`python
print(int.from_bytes(b’\x01\x10’, ‘little’))
“`## 参考URL
https://wa3.i-3-i.info/diff112endiannes.html
Azure Synapse Analytics Dedicated SQL pool ( 専用 SQL プール) における Merge(Upsert)処理の性能検証を実施する方法
## 概要
Azure Synapse Analytics Dedicated SQL pool ( 専用 SQL プール) における Merge(Upsert)処理を、 TPC-H の LINEITEM テーブルのデータを用いて性能検証を実施する方法を共有します。
下記のリソースを利用します。Azure Datbricks にて TPC-H のデータを生成、および、TPC-H のParquet 化を実施します。その後、出力される SQL 文を Azure Synapse Analytics Dedicated SQL pool (専用 SQL プール)で実行します。
– Azure Synapse Analytics
– Azure Storage
– Azure DatabricksTPC-H の概要とデータ生成方法については、下記記事にて整理してます。
– [データベースの性能検証に利用されるTPC-HとTPC-DSに関するざっくりとした整理 – Qiita](https://qiita.com/manabian/items/93d9330cdb607383c
【試行錯誤】OpenAI Whisperを活用した日本語歌詞のforced-alignment リンクまとめ
# 概要
「【試行錯誤】OpenAI Whisperを活用した日本語歌詞のforced-alignment」記事のリンク一覧です。[その1:下調べとワンパス](https://qiita.com/shimajiroxyz/items/c019cfd60ba2953eb463)
[その2:音源分離](https://qiita.com/shimajiroxyz/items/6d253a0a6c53ca65027e)
[その3:別ライブラリによる音声区間検出](https://qiita.com/shimajiroxyz/items/de213cd333e7bf846781)
[その4:stable-tsを試す](https://qiita.com/shimajiroxyz/items/fdbeeb563be5b08837b0)
[その5:正解データづくり](https://qiita.com/shimajiroxyz/items/e1a1ba595c77688606d7)
[その6:音声認識結果と正解歌詞の対応付け](https://qiita.com/shimajirox
【試行錯誤】OpenAI Whisperを活用した日本語歌詞のforced-alignment その7:最初から最後まで処理をつなげる
# 概要
「その6」までの知見を結集して、音源分離からalignmentまでの処理をワンパス通してみました。シリーズ一覧は以下
[【試行錯誤】OpenAI Whisperを活用した日本語歌詞のforced-alignment リンクまとめ](https://qiita.com/shimajiroxyz/items/c91c5074fd24608ea5b1)
# 背景
「その6」までで以下の要素実装に取り組んできました。* meducsによるボーカル抽出
* Whisperによる歌詞認識
* inaSpeechSegmenterによるWhisperタイムスタンプの補正
* 認識歌詞と正解歌詞の対応付け
* forced-alignment今回はこれらの処理をすべてつなげてforced-alignmentのワンパスを通してみます。
# 方針
各処理には時間がかかるものがあったり、人による微修正を加えたくなる場合があるので、それぞれの段階での出力をファイル出力しつつ、再利用できるような構成にします。入力はオーディオファイルのパスを最低限必要とするものとし、正解歌詞が別途ある
python初心者が、地元の積雪量予測をしてみた
# 目次
[今年はどれぐらい降るかねえ](#今年はどれぐらい降るかねえ)
[自己紹介](#自己紹介)
[分析の流れ](#分析の流れ)
[今後の課題](#今後の課題)# 今年はどれぐらい降るかねえ
私の祖父母がいる地方では、秋が深まるとこんな会話がちらほら。
いわゆる雪深い地域です。pythonを勉強して約半年ということで
「どれぐらい降るかねえ?」に、いままで勉強してきたことを使って応えてみたいと思います。# 自己紹介
2022年春より、Aidemyのデータ分析講座を受講。
勉強してきたことのまとめとして、チューターの先生にサポートしていただきながらこの記事を作りました。# 分析の流れ
(1)データの取得、欠損値の処理
(2)データ3種類を1つに結合
(3)それぞれのカラムに前後3日分のデータを追加
(4)線形回帰でモデル実装
(5)決定係数とMSEで評価
(6)LightBGMの実装と評価**はじめに**
環境
・Windows11
・google colaboratoryデータの引用元
・[積雪量データ](http://www.c
Python & AWS(Lambda/API Gateway)によるLINE Bot作成
# Python & AWS(Lambda/API Gateway)によるLINE Bot作成
LINEは日本人口の70~80%が利用しており、生活に必要不可欠な通信インフラと言っても差し支えないほど、若い世代から高齢の世代まで日常的に利用している。その中でサービスを展開している企業やお店が、LINE公式アカウントを通じて、顧客とコミュニケーションを可能にするサービスがMessaging APIである。今回は、LINE Messaging APIを用いて、LINE公式アカウントとAWS上に作成したWebアプリと連携することで、LINE Botを作成する方法を紹介する。## 1. LINE Developersにログインして、Messaging API用のチャネルを作成する
下記LINE Developersのサイトのコンソールにアクセスして、自身のLINEアカウントなどでログインする。https://developers.line.biz/ja/
次に、コンソール画面からLINEアプリ作成のため、Messaging API用のチャネルを作成する。
1. Create a
未経験エンジニアと学ぶデザインパターン(Pub/Sub編)
## 0.. 想定読者
– 未経験で転職を目指す初学の人
– 未経験で転職した人
– デザインパターンを学びたい人## 1.. はじめに
記事を見てきださった皆さんありがとうございます。株式会社NUcoで見習いエンジニアとして働いている@noshishiと申します。まさに、クソコードを量産する典型的な未経験転職者です。エンジニアになっては1ヶ月しかありませんが、学ぶことが多すぎてもう1年すぎたかのような気分です。最近になって、コードを’チョットカケル’レベルになりましたが、書いたコードやプログラム間の関係性がまだまだ理解不足です。「よしよし、ここまでうまく行って、、、、ええ!なんでそれ動くん?」とお祭り騒ぎです。そんな時に出会ったのが、デザインパターンです。
## 2.. デザインパターン
デザインパターンは、プログラムをどう意識して書けば良いかを、教えてくれる指南書のようなもの。この指南書のおかげで、何度も危機を救われています。(実際コピペで使うというより、考え方を学んで適用するものだと私は思っています。)ちなみにソフトウェア開発には、先人たちが苦労し作り上げてくれた
Pythonでちゃんと統計・確率の基礎をやってみた(確率編2/3)
# はじめに
以下の書籍を参考にしながら,統計の基礎を学び直した軌跡,確率編2です.この記事は5部構成の3つ目です.以下も参照ください.
– [準備〜データ編](https://qiita.com/o93/items/91feef63ea70070462d9)・・・投稿済み
– [確率編1](https://qiita.com/o93/items/1b3f379da3e62c6252d8)・・・投稿済み
– 確率編2・・・この記事
– 確率編3・・・まだ
– 推測編・・・まだ
YOLOXの映像解析で車両の速度をAIで算出して渋滞を判定するのに苦労した~その2:速度算出手法編
![速度算出編トップイメージ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140663/f8239820-f1be-020e-7286-65e5fb77a528.jpeg)
# サマリー
・速度の算出について
・距離マスクのアイデアとその実装
・距離マスク(複数移動)
・距離マスクと検出点
・速度の異常検出とその対策前回記事「YOLOXの映像解析で車両の速度をAIで算出して渋滞を判定するのに苦労した~その1:リアルタイム処理編」の続きです。今回は映像からの速度算出の手法について解説します。
渋滞状況を判定するためには、同一画面内で検出した車両をすべてトラッキングし、リアルタイムで速度変化を追い続ける必要があります(何をもって渋滞とするか?の定義については、また別の記事で解説します)。・そもそもどうやって映像から車両の速度を算出するか。
・正しい速度算出のためには、どんな工夫が必要か。
・工夫しても発生する速度の誤検出の原因と、その除去方法などを今回は解説します。
なおこの渋滞検知システム
OpenAI Whisper のコマンドオプション
## あらすじ
以前は、[GPU非搭載 CPU上でOpenAIのWhisperを試して音声データを文字起こししてみた。](https://qiita.com/szktmyk38f/items/9340122aa41a02d319b4)で
Whisperの利用方法を説明しました。
今後社内で使っていくことが決まりましたので、コマンドオプションを纏めておきます。## 使用例
“`bash
$ whisper audio.m4a <オプション>
“`## オプション
| オプション | 内容 |
| ————————–
FT232Hとmcp3004でPCにアナログ入力
# Windows PCにPython、FT232H、MCP3004の組み合わせでアナログ信号処理
GPIOボードFT232HとACコンバータMCP3004の組み合わせ。
BLINKA使用※ラズパイの記事や、古い作法しか見つけられなかったため、メモとして残す。
## FT232Hについて
秋月:https://akizukidenshi.com/catalog/g/gM-08942/
本家:https://learn.adafruit.com/adafruit-ft232h-breakout
USB接続でGPIO入出力ポートを設けるモジュール。
単純なデジタル信号だけでなく、I2CとSPI、2種のシリアルフォーマットも利用できる。FT232HとCircuitPython、BLINKAのインストールについては本記事では省略
↓ adafruitの「setup」に倣った。
https://learn.adafruit.com/circuitpython-on-any-computer-with-ft232h/setup## MCP3004 について
秋月:https://a