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

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

Twitter のスクレイピングについて

最近pythonを本格的に取り組み始めた者なのですが、python(もしくはJavaScript) を用いてTwitterで任意のユーザーが呟いたツイートの中で特定の単語を含む物を随時取得したいと考えています。
しかし最近始めたこともあり、スクレイピングに関してほとんど知識が無く、Twitterのスクレイピング禁止規約において、どこまでが許されてどこまでが許されないかがわかりません。
少し調べてみたのですが、twitterAPIを経由して検索欄から特定の単語を検索、抽出するのは規約に違反するのでしょうか?
Twitterの規約に反せず、特定の単語を含むツイートを探す方法を知っている方がおられましたらご教授頂きたいです。拙文で申し訳ございません。

元記事を表示

Scrapyでパイプライン処理コードをspider別にファイル分離する方法

# はじめに

[Scrapy](https://scrapy.org/)でスクレイピング対象(spiderファイル)を増やしていった場合、パイプライン処理コードが同一ファイル内に増加してしまい見通しが悪くなり保守性に問題が出てきた。
最終的にはspider別にパイプライン実装ファイルを分離する事が出来たので方法を紹介する。

# 暫定対象方法

Scrapyのプロジェクトには`setting.py`という設定ファイルが存在する。
`setting.py`内に`ITEM_PIPELINES`の設定項目がありspiderが複数存在しても、
ここで指定した単一の実装ファイル内のクラスにパイプライン処理を集約するしかないと当初思っていた。

“`python:setting.py
ITEM_PIPELINES = {
‘example_project.pipelines.DBPipeline’: 100,
}
“`

– siperの名称で処理分岐するパターン

spider名称をキーにルーティングしていたが、spiderが増加していくとコードの見通しが悪くなる事が明白。

元記事を表示

Pythonのopenとio.openは同じ

Pythonの`open`と`io.open`は同じ。知らなかった。

“`
>>> import io
>>> io.open == open
True
“`

元記事を表示

要件定義~システム設計ができる人材になれる記事

## はじめに
プログラミングを勉強していて、こんな事を感じた経験はないでしょうか。

**「勉強してもプロダクトが作れない」**
**「そもそも開発ってどうやるの?」**
**「要件定義ってなに?」**

その悩みを解決するために、まずは**開発の全体感**を理解しましょう。
下図『ソフトウェア開発プロセス』をご覧ください

いつも勉強しているプログラミングは**『実装』**の部分に該当します。
つまり、プログラミングの実力を発揮する前に**4つも壁が存在する**のです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/555158/b2a2d18b-7b3b-a97a-4bf1-2b43d7423803.png)

そのため、本記事では実装(プログラミング)を開始する前に必要となる、
**『企画~設計』**について順を追って説明して行きます。
特に、エンジニアが理解しておくべき**『要件定義』『設計』**にフォーカスします。

なお、開発全体において**実装(プログラミン

元記事を表示

Google Cloud Speech API vs. Amazon Transcribe

## 文字起こしAPIガチンコバトル
スクリーンショット 2020-01-10 23.02.46.png

ググってざっと見れた範囲の「文字起こしAPI比較してみた」系記事では、数行(もしくは数分)レベルの非常に短い文字起こしを行いgood/badを述べているものが多いです。もしくはニュース動画のような”クリアすぎる音源”に対して行っているものも多いです。[Amazon Transcribeについてバズっていたブログ](https://note.com/sangmin/n/nf404e9945f48)でも、英語での文字起こしで精度が高い話をしています。自然言語処理分野では英語の精度が高いのは知られているところですが日本語だとどうかというところが気になるところです。

自分が知りたいのは、
– 日本語の音源
– Po

元記事を表示

【Python】collections.UserListを使って独自のリスト風クラスを実装する

pythonの`collections`について調べていたところ、`collections.UserList`について書かれている記事がほぼなかったため、自分なりに使い方をまとめてみました。

※実行環境
python3.7.5

##`collections.UserList`とは

[公式ドキュメント](https://docs.python.org/ja/3.7/library/collections.html#collections.UserList)には次のように書いてあります。

>
このクラスはリストオブジェクトのラッパとしてはたらきます。これは独自のリスト風クラスの基底クラスとして便利で、既存のメソッドをオーバーライドしたり新しいメソッドを加えたりできます。こうして、リストに新しい振る舞いを加えられます。

上記の通り、`UserList`はリスト風なクラスを自作するときのベースクラスです。リスト風クラスとは、`append`や`remove`ができたり、インデクサをもつクラスですね。

##`collections.UserList`を使ってみる

例として、リストを

元記事を表示

言語処理100本ノック-85(TruncatedSVD):主成分分析による次元圧縮

[言語処理100本ノック 2015](http://www.cl.ecei.tohoku.ac.jp/nlp100/)の85本目「主成分分析による次元圧縮」の記録です。
約40万次元を300次元に圧縮します。今回は主成分分析ではなく特異値分解をしています。scikit-learnで主成分分析するとしたら疎行列でできずに、「どちらも次元削減だからいいだろう!」と妥協しました。
主成分分析は、[有名なCoursera機械学習オンラインコースの8週目](https://qiita.com/FukuharaYohei/items/7a71be58818719cdf73c#2-dimensionality-reduction)で習いました。コースに興味があれば、記事[「Coursera機械学習入門オンライン講座虎の巻(文系社会人にオススメ)」](https://qiita.com/FukuharaYohei/items/b2143413063376e97948)を参照ください。

# 参考リンク

|リンク|備考|
|:–|:–|
|[085.主成分分析による次元圧縮.ipynb](http

元記事を表示

PythonのスクレイピングでQiitaのトレンドを取得してみる

#はじめに
以下の記事を参考にさせていただきました。

[Python Webスクレイピング 実践入門](https://qiita.com/Azunyan1111/items/9b3d16428d2bcc7c9406)
[BeautifulSoup4のチートシート(セレクターなど)](https://python.civic-apps.com/beautifulsoup4-selector/)

今回目標とするデータはQiitaのトップページに乗っているトレンドです。

![スクリーンショット 2020-01-11 0.48.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/417600/122759ef-240c-4b58-a309-6b1f61e73a1f.png)

このように
`

`
と言う形でトレンドのJSONデータが存在しているので、それの取得を目標にします。

#実装

元記事を表示

【StyleGAN入門】あの「笑わない男」も思わず微笑んだ♬

今回は、ネタ狙いです。
が、皆様もみたいと思うのでやってみました。
ご笑覧くださいm(__)m

早速、結果をば、。。;。ちなみにソースは前回と同じく以下のとおりです。
[StyleGAN/mayuyu_smile.py /](https://github.com/MuAuan/StyleGAN/blob/master/mayuyu_smile.py)
工夫点は、まあ見てください。
###とにかく笑ってもらう
![inagaki_smile19.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233744/13e2a70a-a4ec-d96e-c792-fdce4a6f1dd3.gif)
**どうにか、口を動かした!**
###ちゃんと笑ってよ
![inagaki_smile19.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233744/85a899e3-bf32-7429-d280-5842f51c289d.gif)

元記事を表示

とりあえず何でもffmpegでファイルを変換したい!!

# ラジオ音源を深層学習のデータにしたい
– deeolearningにおいて重要なことはなんですか?
– 「データでしょ!」(古い!!)
– よって超A&Gのラジオデータをぶっこ抜いてデータとして使おうと考えました.
– `注意`著作権とか色々ありますので使用は各個人の自己責任で
– いろんなデータの変換にも使えるので公開しておきまshowということ

# プログラム手順
1. 変換したいデータがあるディレクトリがある
2. コマンドラインでインプットディレクトリとアウトディレクトリを指定
3. あとはsubprocessを噛ましてffmpegで変換

“`python:convert.py
# -*- coding: utf-8 -*-
import sys
import glob
import os
import subprocess

#ディレクトリの指定
if len(sys.argv) != 3:
print(“python3 aandg.py [inputfile_dir] [outputfile_dir]”)
sys.exit()

else:

元記事を表示

初心者がKaggle Titanicで上位1.5%(0.83732)以内に入る_3

[前回](https://qiita.com/shiroino11111/items/fb6aa6b7dba2ddc3ce04)に続き、[Kaggle Titanic](https://www.kaggle.com/c/titanic/submissions)で上位1.5%(0.83732)へのアプローチを解説していきます。
使用するコードは[Github](https://github.com/shiroino11111/taitanic-0.83732-)のtitanic(0.83732)_3です。
[前回](https://qiita.com/shiroino11111/items/fb6aa6b7dba2ddc3ce04)に出した提出スコアから、0.83732まで向上させる解説を行います。
###1.必要なライブラリをインポートし、CSVを読み込む。

“`py
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.en

元記事を表示

Selenium(Python)で複数サイトを自動ブラウジングするツール作った

#はじめに
ブラウジングしたいURLが書かれたテキストファイルを受け取り、自動でブラウジングしてくれるツールを作成しました。
こだわった点は[youtube](https://www.youtube.com/)や[yahoo](https://www.yahoo.co.jp/)など、**スクロールするにつれてコンテンツが増えるページにも対応した点**です。
参考になれば幸いです。

# コード
“`py:AutoBrowsing.py
import os
import re
import sys
import time
import chromedriver_binary
import requests
from selenium import webdriver

# *** main関数(実行は最下部) ***
def main():
# URL一覧ファイルの受付
input_path = input_urls_file()
# URLリストをファイルから取得
url_list = get_url_list(input_path)
# UR

元記事を表示

学習記録 その20(24日目)

#学習記録(24日目)
勉強開始:12/7(土)〜

教材等:
・大重美幸『詳細! Python3 入門ノート』(ソーテック社、2017年):12/19(木)読了
・Progate Python講座(全5コース):12/21(土)終了
・Andreas C. Müller、Sarah Guido『(邦題)Pythonではじめる機械学習』(オライリージャパン、2017年):12月23日(土)読了
・[Kaggle : Real or Not? NLP with Disaster Tweets](https://www.kaggle.com/c/nlp-getting-started) :12月28日(土)投稿〜1月3日(金)まで調整
・**Wes Mckinney『(邦題)Pythonによるデータ分析入門』(オライリージャパン、2018年)**:1月4日(土)〜

#『Pythonによるデータ分析入門』
p.346 10章 データの集約とグループ演算 まで読み終わり。

##9章 プロットと可視化
・matplotlib, seabornといったデータ可視化ライブラリの解説
 線種のよう

元記事を表示

[Python3 入門 4日目] 3章 リスト、タプル、辞書、集合(3.1〜3.2.6)

# 3.1 リストとタプル
pythonには文字列以外に**タプル**と**リスト**の2種類のシーケンス構造があり、0個以上の要素を持つことができる。文字列との違いは要素は型が異なっても良い。
###タプルの特徴
タプルはイミュータブルであり、要素を代入すると、それは焼き固められたように書き換えられなくなる。
###リストの特徴
ミュータブルであり、要素の削除と挿入ができる。

# 3.2 リスト
リストは要素を順番に管理したい時、特に順序と内容が変わる場合がある時に向いている。文字列とは異なり、リストはミュータブルのため直接変更できる。

## 3.2.1 []またはlist()による作成
リストは0個以上の要素をそれぞれカンマで区切り、全体を角かっこで囲む。

“`py
>>> empty_list = []
>>> weekdays=[‘Monday’,’Tuesday’,’Wednsday’,’Thursday’,’Friday’]
>>> another_empty_list=list()#list()関数で空リスト[]が作成できる。
>>> another_empty

元記事を表示

初心者がKaggle Titanicで上位1.5%(0.83732)以内に入るアプローチ手法_2

[前回](https://qiita.com/shiroino11111/items/bc3889fa38ff32d46c13)に続き、[Kaggle Titanic](https://www.kaggle.com/c/titanic/submissions)で上位1.5%(0.83732)へのアプローチを解説していきます。
使用するコードは[Github](https://github.com/shiroino11111/taitanic-0.83732-)のtitanic(0.83732)_2です。
今回、提出スコアを0.81339まで伸ばし、次回に0.83732となる準備をしていきます。
また、予測の前に、[前回](https://qiita.com/shiroino11111/items/bc3889fa38ff32d46c13)使用したデータの可視化を行い、データを分析していきます。

###1.必要なライブラリをインポートし、CSVを読み込む。
“`py
import pandas as pd
import numpy as np
import matplotlib.py

元記事を表示

初心者がKaggle Titanicで上位1.5%(0.83732)以内に入るアプローチ手法_1

##1. [Kaggle](https://www.kaggle.com/c/titanic/data)とは
データ分析を用いて、様々な問題を解くのを競い合って自分の腕を試すサイト。データセットがもらえ、さらに他の人の解説(カーネル)を見ることができるので、データ分析の勉強になります。

##2. [Titanic](https://www.kaggle.com/c/titanic/data)とは
Kaggleのコンペティションの1つ。
チュートリアルとして多くの初心者が利用します。
タイタニックに乗っていたどの乗客が生き残ったかを予測します。891人分の乗客データから他の418人の生存を予測するのがお題です。

##3.今回やること
ランダムフォレストを用いて提出スコア0.83732(上位1.5%相当)に至るまでのテクニックを初心者向けに解説していきます。
今回は提出スコア0.78468になるまでの解説です。
[次回](https://qiita.com/shiroino11111/items/fb6aa6b7dba2ddc3ce04)で0.81339までスコアを伸ばし、[次次回](

元記事を表示

UbuntuからPythonをアンインストールした話

どうも初めまして。普段はPython、時々CをいじっているIzawaです。タイトルを見た人は「バカじゃねぇの」と思うかもしれませんが、何も知らない人がこれをやってしまわないようにこの記事を書きました。
## 経緯
・OSが入っていないPCを持っていた
・予算が足りなかったのでUbuntuをインストール(なお完全な初心者、コマンドもよくわかってない)
・Pythonをインストールしようと思ったが、どうやら既に入っていた
・バージョンも最新ではなかったため、一旦古いバージョンを削除して、新しいものを入れようとした
## 何をしたか
簡単に言うと、次のコマンドを打ちました。
“`sudo apt autoremove python“`
`autoremove`は、依存するパッケージまで削除するコマンドです。
後からわかったのですが、UbuntuではPythonがOSの機能のために使われているらしいので、入っているものを削除してはいけないようです。
## 影響
PCが突然落ちる、といったことはありませんでしたが、端末とFirefoxが使えなくなりました(アイコンがバーやアプリ一覧から消えた

元記事を表示

Udemy感想:PythonによるWebスクレイピング〜入門編〜【業務効率化への第一歩】 感想

##はじめに

Udemyの年末1200円セール中に購入したものの感想書いていきます。
今回はこれ

PythonによるWebスクレイピング〜入門編〜【業務効率化への第一歩】
https://www.udemy.com/course/python-scraping-beginner/

##自分について

python初めて3か月ほど。最近、業界に転職活動している未経験エンジニアになります。
いろいろ勉強する中で、投稿しているので素人向きかと思います。どんな指摘でもコメントいただいたことに向き合ってます。

##この教材の対象

受講における必要条件

– Pythonの基本的な文法が理解できる方
– HTML, CSSのことが理解できている方

とあるとおり、基本的なことはできている前提でした。

Python

– リスト
– for文

HTML/CSS

– デベロッパーツールの使い方
– HTMLの構造理解

その他

―Jupyter Notebookの理解

この辺は、自然と使える前提で進んでいきますので、素人には難しめ。
Progateの対象言語をやっておけばな

元記事を表示

Flask+MySQLで作るAPIをDocker化するまで

## これは?
APIを作リたい。Flask+MySQLで作りたい。そしてDocker化したい。
この手順をメモとして残す。個人的にDocker化するところが良く分かっていないので、ここを集中的に。

## やること
1. Flask単体で簡単なAPIを作る。
2. 1をDocker化する。
3. MySQLを用意する。
4. FlaskとMySQLの連携をdocker-composeで実行できるようにする。

### 1. Flask単体で簡単なAPIを作る。
まずなんでもいいから単純なAPIを作る。今回は、会員リスト(仮)から条件にあうデータだけをリストにして返すものを作ることに決めた。

下のファイルから、prefectureがリクエストのパラメータと一致するmail_addressのリストを返却する機能を作る。

“`{personal_info.csv}
mail_address,sex,age,name,prefecture
hoge1@gmail.com,male,18,itirou,tokyo
hoge2@gmail.com,male,23,zirou,osaka
h

元記事を表示

ながいPythonコードをシェル芸で実行させる

これは備忘録です.発想は単純だけど意外と面倒だった.

# もちべ
長いコードを画像化して投げればいいのでは?

# てじゅん

## 1. コードをbase64にする

まずはソースコードを文字にして画素値にさせる.

中間的な形式としてPPM画像で出力させる.

PPMで画像化するので3文字ごとに変換する.`AAABBCCCC`ならば`0 0 0\n 1 1 2\n 2 2 2`とさせる

“`python:encode.py
import sys
import base64
argv = sys.argv
f = open(argv[1], ‘r’).read()
enc = base64.b64encode(bytes(f,”utf-8″))
tri = []
for i in range(0,len(enc),3):
e = enc[i:i+3]
while len(e) != 3:
e += b”=”
tri.append(e)
b2i = {c: i for i,c in enumerate(‘ABCDEFGHIJKLMNOPQR

元記事を表示

OTHERカテゴリの最新記事