Python関連のことを調べてみた2020年06月13日

Python関連のことを調べてみた2020年06月13日

Pythonで日本語の類義語を取得する

pythonで自然言語処理をする際に日本語で類義語を取得する手軽な方法があまり見つからなかったのでまとめておきます

## 事前準備

今回はNLTKのwordnetと日本語を扱うためのOpen Multilingual Wordnetの機能を利用します。

“`bash
pip install nltk
python -c “import nltk;nltk.download(‘wordnet’)”
python -c “import nltk;nltk.download(‘omw)”
“`

## Synsetの取得

SynsetはWordnetで定義されている概念の単位です。試しに「米」という単語についてSynsetを取得して定義を見てみます。

“`python
from nltk.corpus import wordnet

synsets = wordnet.synsets(“米”,lang=’jpn’)
for syn in synsets:
print(syn,”:”,syn.definition())

# Synset(‘rice.n.01’) :

元記事を表示

【Python】Nelder–Mead method の実装と matplotlib による GIF 画像の保存

本稿は,最適化アルゴリズムとして知られる Nelder–Mead method (ネルダー–ミード法) について,

* Nelder–Mead method を Python で実装する
* アルゴリズムの挙動を matplotlib を用いて GIF 画像として出力する

ことを目的とする.

## Nelder–Mead method の概要と実装
### アルゴリズムの概要
Nelder–Mead method は 1965 年に John A. Nelder と Roger Mead が発表したアルゴリズム[^1]であり,$n + 1$ 個の頂点からなる $n$ 次元の単体(シンプレックス)をアメーバのように動かしながら関数の最小値を探索する。([Wikipedia](https://ja.wikipedia.org/wiki/%E3%83%8D%E3%83%AB%E3%83%80%E3%83%BC%E2%80%93%E3%83%9F%E3%83%BC%E3%83%89%E6%B3%95) より)
例えば,決定変数が $2$ 次元の問題の場合,三角形を動かしながら最適解を探索

元記事を表示

現在の気象データを取得し自動更新しながらGUIで表示する方法

#0.最初に

今回作るものがどういう感じで動くのか見てみたい方は、[こちら](https://youtu.be/gLE4XS3FKbE)(youtubeの動画)でどうぞ。

#1.OpenWeatherMapAPIの設定
まず[こちら](https://openweathermap.org/)のOpenWeatherMapにアクセスします。
![w1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/616944/b4c5c994-b5b7-9906-dc60-f53729c40f9e.png)
そして、ログインをするとこのような画面が表示されるのでそこの上のAPIのところをおします。
![Polish_20200613_071205710.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/616944/52e8dabf-a1da-592f-b45d-27579a017a3e.png)
そして、現在の気象データを取得するために

元記事を表示

【自動化】PythonでWordの文書を読み取る

##Word文書をPythonで読み取る

契約書や報告書などオフィスでは様々な文書がありますが、主流は【Word文書】かと思います。

業務を自動化するにあたっては、Word文書の作成や読み取りを自動化したいというケースも多そうです。
実際、私も3ヶ月ごとに作成する委託契約書の作成をPythonで自動化しています。

本記事では、python-docxというライブラリを使って**PythonでWord文書を読み取る方法**を解説します。
(次回はWord文書の作成や置換についてご紹介します。)

## Word文書の読み取り

python-docxは標準ライブラリではありません。Anacondaでもデフォルトでは入っていないのでまずインストールしましょう。

“`
pip install python-docx
“`

インストールが終わったらライブラリをimportします。
importのときはpython-docxではなく**docx**なので注意してください。

“`python:python
import docx
“`

次にWord文書を読み込んでオブジェク

元記事を表示

Python超初心者の超初心者のためのPython #関数1

環境
windows7 (Mac Book Pro 16inch欲しい)
Visual Studio Code
chrome
python ver3.8.3

この記事はプログラミング初心者かつPython初心者に向けて記述します。

##関数その1
関数‥‥それは中学校で習ったあれのことか?
それとも関鯖のように美味しいあれのことか?

そう、正解は中学校で習ったあれのようなものです。

“`Python:func.py
y=f(x)

“`

懐かしさで胸が熱くなります。
では、関数とはなんでしょ?
weblioによりますと、関数とは

> 関数
読み方:かんすう
【英】function
関数とは、入力された値に対してある決まった内容の計算を行い、入力された値に応じた処理結果を返す、数式、あるいは命令の集まりのことである。

>[weblio](https://www.google.co.jp/amp/s/www.weblio.jp/content/amp/%25E9%2596%25A2%25E6%2595%25B0)

との事です。
だいぶ記憶が戻って参りました。
しかし、

元記事を表示

Wiktionaryで英語の不規則動詞を調査

Wiktionary の全文を1分程度で調査できるようになりました。意味のある情報を取り出す例として、英語の不規則動詞を調査します。

シリーズの記事です。

1. [Wiktionaryの効率的な処理方法を探る](https://qiita.com/7shi/items/e8091f6ac72491ad45a6)
1. [Wiktionaryの処理速度をF#とPythonで比較](https://qiita.com/7shi/items/1d6b97c657c6fffdbd70)
1. Wiktionaryで英語の不規則動詞を調査 ← この記事

この記事のスクリプトは以下のリポジトリに掲載しています。

*

# 概要

巨大なダンプデータは全体を把握するのが困難なので、大雑把に絞り込んで処理を進めます。

まず全文を読み込んで動詞の情報を集めます。

得られた情報を分析して、何段階かに分けて規則動詞を取り除きます。

# 動詞の情報

see

元記事を表示

[Python] 作ってわかるTF-IDF

TF-IDFのメモ.
TfidfVectorizerを使ったほうがはるかに簡単 なのですが,勉強も兼ねて.
おかしなところがあれば,優しく教えてください.

計算の対象となる文書

“`hoge.txt
white black red
white white black
white black black black
white
“`

“`
#準備
print(word_set)
[‘black’, ‘red’, ‘white’]

print(doc_words)
[[‘white’, ‘black’, ‘red’], [‘white’, ‘white’, ‘black’], [‘white’, ‘black’, ‘black’, ‘black’], [‘white’]]
“`

“`
def tokenizer(word_set, doc_words):
token_doc = []
for words in doc_words:
temp =

元記事を表示

GCIデータサイエンティスト育成講座の演習問題を解く Chapter7

# GCIデータサイエンティスト育成講座
「[GCIデータサイエンティスト育成講座](http://weblab.t.u-tokyo.ac.jp/gci_contents/)」は、東京大学(松尾研究室)が開講している”*実践型のデータサイエンティスト育成講座およびDeep Learning講座*”で、演習パートのコンテンツがJupyterNoteBook形式で公開(CC-BY-NC-ND)されています。
Chapter7は「**Matplotlibを使ったデータ可視化**」で、Chapter2で学んだ散布図、折れ線グラフ、ヒストグラムに加えて、棒グラフ、円グラフ、バブルチャート、ローソクチャートを学習していきます。
日本語で学べる貴重で素晴らしい教材を公開いただいていることへの「いいね!」ボタンの代わりに、解いてみた解答を載せてみます。間違っているところがあったらご指摘ください。

章末の総合問題がやけに難しかったです。そもそも問題の意図を理解できているのやら……。

# Chapter7 Matplotlibを使ったデータ可視化

## 7.1 データの可視化

##

元記事を表示

HDRNet

HDRNetを動かせたい。
コード:https://github.com/mgharbi/hdrnet_legacy
環境:ubuntu18.04, python2.7, tensorflow-gpu==1.1.0

1.requirementsのpip install scikit_image==0.9.3できない。
2.“`fatal error: math_functions.hpp: そのようなファイルやディレクトリはありません
“`

元記事を表示

yukicoder contest 252 参戦記

# yukicoder contest 252 参戦記

## [A 1076 寿司打](https://yukicoder.me/problems/no/1076)

モンテカルロ法は駄目だったので、真面目に数学しました. 求める期待値を n とすると n = p * (1 + n) + (1 – p) * 0 となるので n = p / (1 – p) となります.

“`python
p = float(input())

print(p / (1 – p))
“`

## [B 1077 Noelちゃんと星々4](https://yukicoder.me/problems/no/1077)

「広義単調増加 競プロ」で検索すると、POJ-3666 : Making the Grade のコードがでてくるので、広義単調減少列側のコードをコメントアウトして投稿すると解けました(酷).

元記事を表示

筑波大学の機械学習講座:課題のPythonスクリプト部分を作りながらsklearnを勉強する (13)

前回
[筑波大学の機械学習講座:課題のPythonスクリプト部分を作りながらsklearnを勉強する (12)]((https://qiita.com/legacyworld/items/4f2656e994fdbbfa44fc))
https://github.com/legacyworld/sklearn-basic

# 課題 6.2 カーネルとSVM
前回はガウシアンカーネルの部分まで出来なかったので引き続き課題 6.2を解いていく
ガウシアンカーネルでは2つのパラメータをチューニングしている。

– 正則化パラメータのC
– scikit-learnのsvm.SVCではCに反比例して正則化の効果が大きくなる
– ハイパーパラメータ
– $k(x,x’) = \exp(- \frac{\||x-x’\||}{\sigma^2})$の$\frac{1}{\sigma^2}$の部分
– プログラムでは$\gamma$(gamma)としている

講義ではハイパーパラメータをgammaをプルダウンで選ぶと0.01から300まで10刻み動かして最適な(=テスト誤差

元記事を表示

PyTorchの書籍が分かりにくかったので補足してみた

# どうしてこの記事を書いたの?
PyTorchについて勉強しようと思い、この本を買ってみました。

* [現場で使える!PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装](https://www.amazon.co.jp/dp/479815718X)

いくつか見比べてみて、初学者向けのものを選んだのですが、、、`よくわからん!!!`となりました。
_**出力を書いていないから何が出力されて、どういう観点を確認すればわからないんです!!**_

なので、おそらく言わんとしていることはこうだろうという**補足**をまとめてみました。
実行環境は[Google Colaboratory](https://colab.research.google.com/notebooks/welcome.ipynb?hl=ja)としています。

下準備として、PyTorchをインストールします。

“`python:IN
import torch
“`

PyTorchではGPUを使用します。GPUが使用可能かどうか確認してみましょう。

“`pytho

元記事を表示

【Python】FizzBuzz問題のカッコイイ解答を読み解いてみる

## はじめに

現在僕が受講しているPython基礎を習得する講習にて、

**「FizzBuzz問題を2通り以上の書き方で書いてみよう!」**

という課題がありました。

その模範解答の1つとして講師の方が挙げてくださった解答を目にして、基礎を学習中の身の僕はとても感動を覚えました。

こちらがその解答例。

“`python:FizzBuzzのカッコイイ解答
end = 100
for i in range(1, end + 1):
print(‘FizzBuzz'[(4 if i % 3 else 0):(4 if i % 5 else 8)] or i)
“`

う、うつくしい…
たった3行で書けるとは。(もっと言うと2行でいけてる)

けど **ちょっと何を言っているのかわからない。**

悔しいので、この記述を読み解いてみることにしました。
これまでどこかでは見たことのある色んなエッセンスが詰まっていて、読み解けた時には程よい満足感に包まれました。

この記事では、「このスクリプトが何を言っているのかわかる」というところを目指して、解説してみます。
ぜひ一緒

元記事を表示

Python Pandas データ前処理 個人メモ

# この記事について

pandasを使ったデータの「前処理」について学習を進める中で随時更新している個人的メモ。

## この記事についての注意
– 前処理というと、AI・機械学習をイメージされるかと思いますが、
わたしが前処理学習を行う目的は、蓄積データを “思うように加工・分析できるようになりたい” からです。機械学習を目的とした前処理の情報としては不足する可能性があります。
– わたしはAI分野の人ではありませんので、そちら方面の知識を求めている方はこの記事の内容は参考程度に留めていただく方が宜しいかと思います。
– 書きかけの為 中途半端な情報やわかりにくい情報があるかもしれません。随時更新する予定ですが誤った情報についてはご指摘くださると嬉しいです。

# 前処理とは?
蓄積したデータを、目的の作業(機械学習など)をするために、綺麗にしたり、加工したりすること。
機械学習を行う方々も、データ収集作業とあわせて この作業に1番の作業時間を使っているらしい。

## 前処理を学習する上で登場する言葉

– データクレンジング
– データクリーニングと同義。多分「前

元記事を表示

【PyTorch】BERTを用いた文書分類入門

## はじめに
本稿では、英語のニュース記事見出しをカテゴリに分類するタスクを通して、事前学習済みBERTモデルをファインチューニングする流れを追っていきます。
日本語の場合は英語と異なり形態素解析が必要になりますが、全体の流れは本稿の内容と同様です。

なお、この実装は[言語処理100本ノック2020年版](https://nlp100.github.io/ja/)の問題89の回答にもなっています。
その他の問題の回答例は[【言語処理100本ノック 2020】Pythonによる回答例まとめ](https://qiita.com/yamaru/items/0cac24710626333bd693)をご覧ください。

## 事前準備
実装にはGoogle Colaboratoryを利用しています。
Google Colaboratoryのセットアップ方法や基本的な使い方は、[こちらの記事](https://cpp-ふlearning.com/python_colaboratory/)が詳しいです。
**再現される際にGPUを利用する場合は、事前に「ランタイム」 -> 「ランタイムのタイプ

元記事を表示

Heroku+Flask+PostgreSQL(Heroku Postgres)でガラル地方のポケモンのタイプや強さを教えてくれるLINE bot作った

# はじめに
 タイトル通りですが、ガラル地方(ソード・シールド)に登場するポケモンの情報を教えてくれるLINE bot作ったので簡単にまとめたいと思います。以下、画面イメージです。

image.png

![system.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/323251/00e61b5c-9d33-1207-d836-671f1971191c.png)

 ファイル構成とかは[[GitHub]](https://github.com/spider-man-tm/line-bot-pokemon)を参照してください。

# ローカル環境
 pipenvを使って以下のPipfileから必要なライブラリをインストール。なぜか

元記事を表示

ゼロから始めるLeetCode Day54 「1290. Convert Binary Number in a Linked List to Integer」

# 概要

海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。

と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。

ただ、ITエンジニアとして人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

Python3で解いています。

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetC

元記事を表示

[Python]対戦を通じて語彙力を高めるしりとりAIを作ってみた

# はじめに
Qiita記事初投稿です。

Pythonを用いてしりとりAIを作ってみました。
概要は以下の通りです。

– AIと対話型のしりとりをCUIで遊ぶことができる
– AIは、単語辞書に存在しない単語 (以下、未知単語) を適宜学習し、語彙力を増やしていく
– Twitterから適当なツイートを取得し、そのツイートから同様に未知単語を学習することもできる
– スクレイピングをする関係上、**インターネット環境**と**TwitterAPI**が必要

これを昨年の大学のオープンキャンパスにて、研究室の出し物として来場客にデモプレイしてもらったところ、思ったよりもウケが良かったので、(結構な時間が経ちましたが) Qiitaの記事にしてみることにしました。

この記事では、しりとりAIの遊び方やコードの概要を説明します。
プログラムのソースコードは[GitHub](https://github.com/takumi13/SiritoriAI)にて公開しています。
興味のある方はぜひcloneしてください。

※機械学習等は一切使っていないので、AIという命名をしていることに違和

元記事を表示

python + sqlite3で”OperationalError: no such column: “

#はじめに
pythonでsqlite3を使ってデータベースにデータを追加しようとしたら”OperationalError: no such column: None”が出た。結論から言うと文法が不適切だったみたい。

#環境
python 3.7 sqlite 3.30.0

#状況
エラーを再現するために簡単なデータベースを作る。examplesテーブルにinteger型のカラムvalueがあるとする。valueとしてpython内部で作った変数xの値を格納する。

“`python
import sqlite3

db_path=”test.sqlite3″

con=sqlite3.connect(db_path)
c=con.cursor()
x=1
sql=”insert into examples(value) values({0})”.format(x)
c.execute(sql)

con.commit()
con.close()
“`
x=1などの場合はエラーは起きない。しかし、x=Noneの場合は

“`python
#~~~略~~~~
x=None
sq

元記事を表示

GANとVAE

##目次
1. オートエンコーダとは
2. 変分オートエンコーダ(VAE)
3. GAN

##オートエンコーダとは

やってることはしたの図がわかりやすい。要は、エンコーダで画像データの次元を削減することで情報を圧縮し、デコーダで圧縮された情報を使って画像を再構築している。入力画像と出力画像の画素間の距離MAEを算出し、最適化する。教師なし学習。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/404591/6a997842-d627-3e71-55bc-11c6b3a71ad3.png)

さてこのオートエンコーダを使ってどのように画像を生成するのか。
まず画像を使ってオートエンコーダを訓練する。エンコーダとデコーダの二つのネットワークのパラメータが適切になるように最適化を行う。そうすると入力した画像が潜在空間でどのように表現されるかという大体の感触がわかる。これを生成モデルとして使う場合は、基本的にはエンコーダ部分は使わず、潜在空間とデコーダのみを使う。

##変分オートエンコーダ

元記事を表示

OTHERカテゴリの最新記事