- 1. Entity Linkingチュートリアル 発展編 知識ベース全体に対するBi-encoder探索の実装
- 2. Pythonを使った彼ピッピの作り方
- 3. CentOS6.7 への Python3 インストール手順メモ
- 4. DiscordボットでGCEインスタンスを起動・停止する
- 5. PythonでGoogleNewsを日本語かつjsonで取得する
- 6. Google workspace や Gmailのメールアドレスを使って、pythonから送信する。
- 7. PythonでNewsAPIの日本語記事を取得する方法
- 8. Macにgrpcをインストールする方法
- 9. UbuntuStudio Tips: (備忘録)mididingsのpython3対応
- 10. Re.ゼロから始める自動翻訳機開発!その1
- 11. スコープについて Python競プロメモ③
- 12. I would like to graph the infection transition of covid-19 with a range of periods using pandas and matplotlib.
- 13. 2021年に日本が注力したいことを総理所信表明演説から分析してみた.
- 14. Pythonで文字単位のn-gram
- 15. なぜPythonにはsetter/getterメソッドがないのか?
- 16. 機械学習が学べるサイトまとめ
- 17. 【Python】擬似乱数を生成するrandomと機密を扱うために安全な乱数を生成するsecrets(備忘録)
- 18. Anaconda による OpenCV 導入手順(Mac PC)
- 19. scikit-learnで多項式回帰にスパースモデリングを試す
- 20. <python>プログラミング実行中の記録を残す→logging
Entity Linkingチュートリアル 発展編 知識ベース全体に対するBi-encoder探索の実装
# なんの記事?
[Entity Linking 後編](https://qiita.com/izuna385/items/367b7b365a2791ee4f8e) に続く発展編です。https://qiita.com/izuna385/items/367b7b365a2791ee4f8e
前回の実装までで、表層形を用いて候補を絞り込んだエンティティ・リンキングシステムを実装し、評価まで行いました。
本記事では、**表層形による候補絞り込みを行わない**エンティティリンキングモデルを実装します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/357766/bc59ab0b-bdd3-1615-0f43-5c726ec93d27.png)
## 表層形を用いない候補探索の歴史
[エンティティ・リンキング 前編](https://qiita.com/izuna385/items/9d658620b9b96b0b4ec9) でも述べたように、エンティティ・リンキングではこれまで、
Pythonを使った彼ピッピの作り方
#はじめに
彼氏 = 彼ピッピならば
し = ぴっぴ
なのである
というわけで、”し”を”ぴっぴ”にする(以下、彼ピッピ化という)コードをPythonで書いていく
#コード
“`python
from pykakasi import kakasikakasi = kakasi() #オブジェクトをインスタンス化
kakasi.setMode(‘J’, ‘H’) #モード設定
conv = kakasi.getConverter()txt = input(‘>>>’)
print(conv.do(txt).replace(‘し’,’ぴっぴ’).replace(‘シ’,’ピッピ’).replace(‘シ’,’シ’)) #彼ピッピ化
“`たったこれだけで彼ピッピ化してくれます。
“`
>>>彼氏
かれぴっぴ
“`コピペして使いたい方は「pykakasi」を予めインストールしておいてください。
“`
pip install pykakasi
“`漢字をひらがなやカタカナ、ローマ字に変換してくれるライブラリです。
「pykakasi」の詳しい使い
CentOS6.7 への Python3 インストール手順メモ
#はじめに
諸事情により、古い環境 (CentOS6.7) で Python を動かす必要がありました。
Python2系は標準入っているけど、Pythonは 3系で書かれていたので Python3をインストールすることにしました。
色んな所でつまずいてしまったので、メモとして手順を残しておきます。#インストール手順
標準では 2系がインストールされています。“`
$ python -V
Python 2.6.6
“`こちらを参考に yum でインストールしてみようとしたところ・・・
https://qiita.com/f-akazawa/items/5ec741f8a5cca999d7b3
“`
# yum install -y https://centos6.iuscommunity.org/ius-release.rpmLoaded plugins: fastestmirror
Setting up Install Process
Cannot open: https://centos6.iuscommunity.org/ius-release.rp
DiscordボットでGCEインスタンスを起動・停止する
はじめに
—
GCEのインスタンスをDiscordBotで起動・停止させるための手順を書こうと思います。
この記事ではhttps://qiita.com/kkst/items/2942db4ba9a14a0e926f
の記事で作ったインスタンスを例に起動・停止できるようなコードを書いていきます
Discordbot用のVMインスタンスを作成
—
GCEの永続無料のプランで構成していきます(pythonのコードを実行し続けるだけのサーバーなのでたいしてスペックは必要ない)| 項目 | 無料枠 |
|:—————–|:——————
| インスタンス | f1-micro
| ストレージ | 一ヶ月あたり30GB(HDD)
| スナップショット | 一ヶ月あたり5GB
| データ転送(外向き) | 一ヶ月あたり1GBhttps://cloud.google.com/free?hl=ja 参照
なおosはcent
PythonでGoogleNewsを日本語かつjsonで取得する
Googleのニュースは、例えばビットコイン関連のニュースが取得したい場合、実は以下のようなURLで取得できる
https://news.google.com/rss/search?q=ビットコイン&hl=ja[参考]↓
[Google News Rss(API)](https://qiita.com/KMD/items/872d8f4eed5d6ebf5df1)ただ、これだと結果がxmlなのでちょっと扱いづらい…
検索すると以下のようなライブラリがあったので使用してみたhttps://pypi.org/project/GoogleNews/
ドキュメントの通り、以下のように書いて動かしてみたが、エラーが出る
“`python
from GoogleNews import GoogleNewsgooglenews = GoogleNews(lang=’ja’, encode=’utf-8′)
googlenews.get_news(‘ビットコイン’)
result = googlenews.results()
print(result[0])
“`
“`
‘a
Google workspace や Gmailのメールアドレスを使って、pythonから送信する。
# 本記事の対象者
– GCPでサービスを作り、メールを送信する仕組みを無料で作りたい人。(サービスのホスティングが無料ではなく、メール送信部分だけ)
# 目的
sendgridなどの外部のサービスを使わずに、pythonを使ってgmailを送信する。# 必要なもの
– Gmail または、Google workspaceのアカウント (Google workspaceは管理者権限が必要)
– pythonを動かす環境# メールの設定
### 送信者の設定[設定](https://myaccount.google.com/intro/security)から二段階認証を有効にする
![スクリーンショット 2021-03-25 11.24.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38197/d628628e-b797-bccd-0bed-8e1ae312e115.png)二段階認証有効後、アプリパスワードを作成する
![スクリーンショット 2021-03-25 11.
PythonでNewsAPIの日本語記事を取得する方法
NewsAPIで日本語記事を取得しようと思ったらうまくいかなかったのでメモ
https://github.com/mattlisiv/newsapi-python
上記のライブラリを使用する。
https://newsapi.org/docs/client-libraries/python
上のドキュメントを参考にすれば、
“`python
# /v2/top-headlines
top_headlines = newsapi.get_top_headlines(q=’ビットコイン’,
language=’ja’,
country=’jp’)
“`とかすれば取れそうだが、これだと取得できない。
https://newsapi.org/docs/endpoints/sources
どうやらlanguage項目に’ja’がないらしい。
というわけで、“`python
# /v2/top-head
Macにgrpcをインストールする方法
#解決方法
Mac(Big Sur)にfirebase-admminをインストールしようとしたらgrpcのpipでコケたので対応した。
以下の環境変数を設定するとうまくいった“`
export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=true
“`どうやらCatalinaとBig Surだとうまくいかないらしい。
#参考
https://stackoverflow.com/questions/65807966/poetry-install-grpcio-fails-with-envcommanderror
https://bleepcoder.com/fr/grpc/737099678/grpc-does-not-compile-on-mac-os-catalina-10-15-6-big-sur-11
UbuntuStudio Tips: (備忘録)mididingsのpython3対応
# はじめに
ubuntu studioに普通にapt-getでmididings入れるとpython2.7で動いてしまうので
python3で動くようにしたときのメモ# ソースの取得
どうやらpython3-mididingsとかいうパッケージはなさそうなので、
ソースからビルドして/usr/local/binにつっこむことにしたまずはソースの取得
“`
$ git clone https://github.com/dsacre/mididings.git
“`
mididingsってフォルダがあるのでそこのフォルダで色々作業する※2021/03/25追記
なんか今アクティブなブランチは以下のものらしいpython3.7対応済みとのこと
https://github.com/marcan/mididings.git# ソースの修正
修正箇所は4ファイル
– setup.py
– scripts/livedings
– scripts/mididings
– scripts/sendmidi先頭行の`#!/usr/bin/env python` を `#!
Re.ゼロから始める自動翻訳機開発!その1
#何をするのか?
中学3年間で習う英文法のエッセンスを詰め込んで文法的に正確な翻訳できるプログラムを作る。そして、アプリ化する。もちろん現在の翻訳サービス、DeeplやGoogleTranslationなどが英文法を使っていないのは百も承知。もし仮にも英文法をサービスに組み込んで置きながらあのガバガバ翻訳だったら怖い。ですが、そんな機械学習を用いた翻訳は今機械学習の入門書を読んでいるうp主には無理。という理由もあるが、実際は英語学習のモチベを保つ為であるのは内緒です。英文法を勉強するだけではうp主のモチベが折れて、勉強しなくなってしまう。それを避ける為に今回のプロジェクトを立てた理由です。#仕様を考える
と言われても今作りたい物がアバウト過ぎるのでしっかりと仕様を考える。まずは日本語を英語にするのかそれとも英語を日本語にするのかだが、後者を選択したいと思う。なぜなら日本語は主語が無くても通じる節があり、その文の主語を補う方法が思いつかない。よって消去法により後者、英語を日本語に自動翻訳するシステムにしようと思う。次に決めるのはプログラミング言語を選定して行く。まずパッと思い付くのは
スコープについて Python競プロメモ③
使用言語 Python3
“`
def vertical(aa,bb):
num = aa + bb
return numnum = 5
vertical(1,2)
print(num)=>3
5
“`
上のようなコードの場合、def内にあるnumはlocalな変数のため、def外になると適用されない。そのため、vertical(1,2)では3を返すが、print(num)ではglobalな変数である5を返す。次に、def内にあるnumをglobalな変数にしてみるとどうなるかを書く。
“`
def vertical(aa,bb):
global num
num = aa + bb
return numnum = 5
vertical(1,2)
print(num)=>3
3
“`
このコードを上から順にみていくと、
①まずnum = 5が代入される
②vertical(1,2)が実行され、num = 3が新たに代入され、numが返される。
③print(num)により、②で代入されたnumが返される。
I would like to graph the infection transition of covid-19 with a range of periods using pandas and matplotlib.
[日本語](https://qiita.com/dauuricus/items/46685d17c7c8f895274d)
When I tried to draw a graph using the public data of the Ministry of Health, Labor and Welfare of Japan OVID-19 (the data of the Ministry of Health and Welfare from February 14, 2020), it was superimposed on the data released by NHK (the data of NHK from January 16, 2020).
###NHK opendata about Covid-19 in japan
https://www3.nhk.or.jp/news/special/coronavirus/data-all/?fbclid=IwAR2UQ36PYoP2Kqwv88b-NERAN8PvG9uLUuWEY9VlspBqYZeKI4XJ3f
2021年に日本が注力したいことを総理所信表明演説から分析してみた.
## はじめに
今回は,現日本の総理大臣が2021年に総理として実践したいことをデータ(総理所信表明演説)から
導いていいきたいと思います.
## 分析に至る経緯
僕は,最近就活をぼちぼちしているのですが,あるベンチャー企業の面接をしている
中で政治が進めたい方向とビジネスをマッチさせながら進めて行くというやり方が
あるという話をしていただきました.
その話の中で僕が思ったのは,それを客観的にわかるものがあったら便利だなと感じ
分析してみた感じです.
ちなみに,その企業の面接を受け,お話できたのはすごくよかったなと感じています.
## 注意事項
この分析は,僕がなるべく客観的にデータを見てストップワードを設定し分析をしています.
特に政治的主張はありません.
また,所属企業や団体とは一切関係なく,一個人としての分析ですのでそちらをご了承いただけますよう宜しくお願い致します.
## 分析のアジェンダ
・データの取得
使用ライブラリ:☆BeautifulSoup☆requests
・データの前処理
使用ライブラリ:☆MeCab☆pandas
・可視化
使用ライブラリ:☆nlplot
##
Pythonで文字単位のn-gram
#Pythonで文字単位のn-gram
のっぴきならぬ事情で法律のNLPをやっています。法律の文書には専門用語が多く、トークン化にngramを用いようと考えました。Pythonできれいに書ける方法が見つからず、ちょっと調べただけだと気に入った方法がありませんでした。~~標準の機能でうまく書けたので、~~その辺を記載します。
(2021/03/25修正)
標準機能ではないことをコメント欄でご指摘頂きました。以下の実行が必要です。申し訳ございません。“`shell-session
pip install more-itertools
“`“`python
import more_itertools
list(more_itertools.windowed(“1文字ずつずらしながら4文字で分割する”, n=4, step=1))
“`実行結果は以下のような感じです。
“`shell-session
[(‘1’, ‘文’, ‘字’, ‘ず’),
(‘文’, ‘字’, ‘ず’, ‘つ’),
(‘字’, ‘ず’, ‘つ’, ‘
なぜPythonにはsetter/getterメソッドがないのか?
# 概要
JavaやC++などの他のオブジェクト指向言語では`setter/getter`メソッドの使用が推奨されているが、Pythonには存在しない。
もともとJavaやC++に触れていた僕には「**なぜPythonにはsetter/getterメソッドがないのか?**」がすごく疑問だった。
さらに、Javaなどの言語の資料では
「**クラス内部の変数はprivateにして隠蔽せよ**」
と書いてあるが、逆にPythonの資料では
「**privateはなるべく使わずpublicを使え**」
と書いてあることが多い。
**矛盾しているのでは…?**気になったのでいろいろ調べて見た結果、そこには**2つの理由**があることがわかった。
さらに、Pythonで`setter/getter`を使いたい場合の**1つの代替案**があるということもわかった。
この記事では– オブジェクト指向とカプセル化について
– Pythonにsetter/getterメソッドが存在しない2つの理由
– setter/getterメソッドの代替案の順に説明する。
最初のオブジェクト指向につい
機械学習が学べるサイトまとめ
自分が機械学の勉強をしたり、情報収集をする際に参考にしているサイトのまとめ
随時追加予定###学習教材
[PyTorchチュートリアル(日本語翻訳版)]
(https://yutaroogawa.github.io/pytorch_tutorials_jp/)
公式チュートリアルの日本語版。Gooogle Colaboratoryファイルもあるのですぐ始められてありがたい。[chainerチュートリアル]
(https://tutorials.chainer.org/ja/tutorial.html)
開発が終了してしまったchainerだが、基本的な内容のため参考になる。[東京大学松尾研究室 演習コンテンツ]
(https://weblab.t.u-tokyo.ac.jp/%e6%bc%94%e7%bf%92%e3%82%b3%e3%83%b3%e3%83%86%e3%83%b3%e3%83%84%e5%85%ac%e9%96%8b%e3%83%9a%e3%83%bc%e3%82%b8/)
東京大学の松尾研究室が監修した学習講座を無料で公開してくれてる。環境構築不要でgo
【Python】擬似乱数を生成するrandomと機密を扱うために安全な乱数を生成するsecrets(備忘録)
自分用メモ
基本的に乱数は**random**を使えばいいが、セキュリティ目的に使用することは非推奨らしい。
セキュリティや暗号学的な用途については**secrets**を使用することが推奨されている。# random — 擬似乱数を生成する
よく使う関数を抜粋## float型の乱数を取得する関数(randomの基本の関数)
### random.random()
“`python
import randomprint(random.random())
print(random.random())
print(random.random())
“`
“`
0.0016279893463542194
0.19053946851887782
0.5239379354847451
“`## 整数用の関数
### random.randrange(stop)
stopに指定した値を上限(stop–1)としてランダムな整数を返す。“`python
import randomprint(random.randrange(10))
print(ran
Anaconda による OpenCV 導入手順(Mac PC)
#1. はじめに
Mac PC に **Anaconda** をインストールし、
環境を作成して **OpenCV** を導入する手順をまとめます。また、OpenCV ライブラリを読み込み 画像を表示させる簡単な処理を実行します。
#2. pyenv 導入
今回は **pyenv**を使用して Anaconda を 導入します。
まずは、以下リンク先の記事 の **[2. Python3 導入] > [2-1. pyenv 導入]** を参考に **pyenv** を導入します。
・Qiita:Mac PC へのPython3 導入手順 > [2. Python3 導入] > [2-1. pyenv 導入]
https://qiita.com/Haruka-Ogawa/items/b1bf5ad9b28d44702a64#2-1-pyenv-%E5%B0%8E%E5%85%A5#3. Anaconda 導入
##3-1. インストール
第2項で導入した **pyenv** コマンドを使用して、**Anaconda** を導入します。
###① インストール
scikit-learnで多項式回帰にスパースモデリングを試す
## はじめに
スパースモデリングは、解のスパース性を仮定して、少ないデータからでもデータの関係をモデル化できるようにする手法です。大量のデータがあることを前提にデータの関係をモデル化するディープラーニングとは対照的なものです。
理解を深めるため、scikit-learnで「ほとんどの係数がゼロの多項式関数」と解のスパース性を仮定した多項式回帰の問題を解いてみます。### この記事でやること
– スパースモデリングの概要説明
– 多項式回帰を、`sklearn.linear_model`の[Regressors with variable selection](https://scikit-learn.org/stable/modules/classes.html#regressors-with-variable-selection)を使って解く
– Google Colaboratoryで[この記事に用いたソースコードの全文](https://colab.research.google.com/drive/17SPaS-KUz2yRrTWTZQqZ-qRo6Evv0s9m
<python>プログラミング実行中の記録を残す→logging
### 参考リンク
https://docs.python.org/ja/3.8/howto/logging.html### やりたいこと
機械学習モデルのパラメータやら、特徴量エンジニアリングの試行実験結果を、
excelによる手打ち記録から、自動ファイル出力へとステップアップする### この記事の対象者
– python始めたばかり
– モデルのパラメータを保存したい
– 実験結果を残したい### コード
import logging # インポート
logger = logging.getLogger(‘aaa’) # オブジェクト
logger.setLevel(logging.DEBUG) # 表示(出力)するlogレベルをdebugに変更する(デフォルトはwarning)log_file = logging.FileHandler(filename=’test.log’, mode=’w’) # 出力するファイルを指定
logger.addHandler(log_file)logger.debug(‘debug’)