元職業エンジニアの生き方

これまでとこれからを考えるための備忘録

Python&BeautifulSoup&PhantomJS&SeleniumでJSレンダリングして情報を取得してみました。

どうもです。

 

クラウドファンディングサイトをクローリングする上で、JavaScriptで構成されている内容を取得しなければいけなくなり、レンダリング後にHTML情報を取得してみました。

 

対象:

https://www.makuake.com/project/kumamoto_nebutamatsuri/communication/

こちらのサイトの活動報告(今回はタイトルだけ)

 

使用ツール:

Python

◉ BeautifulSoup

◉ PhantomJS

◉ Selenium

 

ソース

from selenium import webdriver
from bs4 import BeautifulSoup
import time

driver = webdriver.PhantomJS()

driver.get("https://www.makuake.com/project/kumamoto_nebutamatsuri/communication/")

time.sleep(5)

html = driver.page_source

bs = BeautifulSoup(html, "html.parser")
titles = bs.find_all('span', 'owner-post__title')
for title in titles:
print title.text

driver.quit()

 

結果

届きました~~(^^♪
くまもと情報タウン紙
笑顔が素敵なスタッフでした!
少しずつ、準備は進んでいます♫

 

意外と簡単にできました。

参考にしたサイトはこちらです。

www.yoheim.net

 

Pythonを動かせる環境があればできます。

URL変えれば色々取れるかと思いますが、今のままだと報告がゼロ件だと落ちそう?笑

 

 

ご指摘あれば教えてください^^

それでは。

 


 

Twitterやっているので宜しくお願い致します。

twitter.com

シェルスクリプトで、設定ファイル(Config)を読み込んでMySQLへの接続プログラム

備忘録です。

 

シェルスクリプトでの備忘録を残します。

 

ディレクトリ構成】

.

└── sh

   ├── mysqConf.conf

   └── mysqlConnect2.sh

 

mysqConf.conf内 】

USER=root

 

【 mysqlConnect2.sh内 】

./mysqlConf.conf
mysql -u $USER

 

【 結果について 】

この場合、パスワード指定をしていない場合に接続成功

 

パスワード情報も設定ファイル(拡張子をconfにしてわかりやすく!)に書き込めたり出来ますので、試してみてくださいね。

 


元職業プログラマ・エンジニアのMiyamoto

地域、クラウドファンディング、都市伝説、AI、人工知能、宇宙に興味があります。

Twitterやっているので宜しくお願い致します。

twitter.com

シェルスクリプトで、MySQLへの接続プログラム

備忘録です。

 

シェルスクリプトでの備忘録を残します。

 

【 mysqlConnect.sh内 】

mysql -u root -p

 

【 結果について 】

パスワード指定しているのでパスワード問い合わせが来る
この問い合わせをなくすには、
・オプションのpを消す(パスワード設定していない場合)
・「mysql -u root -pAAA」と記載するとよい(AAAというパスワードの場合)

 

次回はConfigファイルよ読み込んで接続させようか。

 


元職業プログラマ・エンジニアのMiyamoto

地域、クラウドファンディング、都市伝説、AI、人工知能、宇宙に興味があります。

Twitterやっているので宜しくお願い致します。

twitter.com

シェルスクリプトで、指定ディレクトリの情報出力プログラム

備忘録です。

 

シェルスクリプトでの備忘録を残します。

 

ディレクトリ構成】

.

└── sh

   ├── input

   │  ├── 1.csv

   │  ├── 2.csv

   │  ├── 3.csv

   │  ├── 4.csv

   │  └── 5.csv

   └── run.sh

 

【 run.sh内 】

dir=$(cd $(dirname $0) && pwd)

cd $dir

files='./input/*.csv'

for filepath in $files; do

# 1つ目
echo $filepath
 # 2つ目
echo ${filepath%.*}
 # 3つ目
echo $(basename ${filepath%.*})

done

 

【 結果について 】

1つ目の表示:相対パス×拡張子付きのファイル名
2つ目の表示:相対パス×拡張子なしのファイル名
3つ目の表示:拡張子なしのファイル名

 

最初のdir指定はcrontabでも動かせるようにする為だったり。。。

まだ色々できそうですが、今回はこのくらいで。

 


元職業プログラマ・エンジニアのMiyamoto

地域、クラウドファンディング、都市伝説、AI、人工知能、宇宙に興味があります。

Twitterやっているので宜しくお願い致します。

twitter.com

HTMLでJavaScriptを呼び出して使う備忘録

備忘録です。

 

JavaScriptの呼び出し方を掲載します。

 

パターン1:インラインスクリプトと言って、HTML上に記載

パターン2:外部スクリプトと言って、JavaScriptファイルを呼び出す(一般的)

 

【 パターン1 】

 index.html

<hrml>
<head>
<title>HTMLの表示テスト</title>
</head>
<body>
<p id="miyamoto">元職業エンジニア!</p>
<script type="text/javascript">
  setInterval("miyamoto.style.opacity^=1",100)
</script>
</body>
</hrml>

 

【 パターン2 】

index2.html

<hrml>
<head>
<title>HTMLの表示テスト</title>
</head>
<body>
<p id="miyamoto">元職業エンジニア!</p>
<script type="text/javascript" src="miyamoto.js"></script>
</body>
</hrml> 

miyamoto.js

setInterval("miyamoto.style.opacity^=1",100)

 

うざいくらい点滅させてます。

 

ちなみにJavaScriptは、Ajaxとか、アプリ開発ができたり、ブラウザ上で試したり、動かせるWEBサービスなんかもあって面白いと思います。

 

とにかく色々できるんです。

このJavaScriptが生まれてからWEBが変わったのもうなずけます。

 


元職業プログラマ・エンジニアのMiyamoto

地域、クラウドファンディング、都市伝説、AI、人工知能、宇宙に興味があります。

Twitterやっているので宜しくお願い致します。

twitter.com

HTMLでCSS(スタイルシート)を呼び出して使う備忘録

備忘録です。

 

CSSの呼び出し方を掲載します。

 

パターン1:HTML文上にStyleタグを挿入

パターン2:特定タグにStyleタグで個別挿入

パターン3:CSSファイルを別個に作って呼び出す(一般的)

 

【 パターン1 】

 index.html

<hrml>
<head>
<title>HTMLの表示テスト</title>
<style type="text/css">
<!--
p {color:red; line-height:1.5;}
-->
</style>
</head>
<body>
ここは黒で<br>
<p>ここが赤になるよ!</p>
</body>
</hrml>

 

【 パターン2 】

index2.html

<hrml>
<head>
<meta name="Content-Style-Type" content="text/css">
<title>HTMLの表示テスト</title>
</head>
<body>
ここは黒で<br>
<p style="color:red; line-height:1.5;">ここが赤になるよ!</p>
</body>
</hrml>

 

【 パターン3 】

index3.html 

<hrml>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<title>HTMLの表示テスト</title>
</head>
<body>
ここは黒で<br>
<p>ここが赤になるよ!</p>
</body>
</hrml>

 

style.css 

p {
color:red; line-height:1.5;
}

 

結果は全て同じ。

 


元職業プログラマ・エンジニアのMiyamoto

地域、クラウドファンディング、都市伝説、AI、人工知能、宇宙に興味があります。

Twitterやっているので宜しくお願い致します。

twitter.com

Macのターミナルコマンドで、ZIPファイル解凍→解凍した複数ファイルを全て結合

備忘録です。

 

Macのコマンドで備忘録を残します。

 

ディレクトリ構成】

.

└── test

   ├── test1.zip

   │  ├── test1.csv

   │  └── test2.csv

   └── test2.zip

      ├── test3.csv

      ├── test4.csv

      └── test5.csv

 

中身ですが、

cd,title

1,aaa

 

全てこうなっております。

 

【 ZIPファイル解凍 】

 

unzip "*.zip"

 

CSVファイル結合 】

cat *.csv >> test.csv

 

【 結果表示 】 

cat test.csv

---------------------------------

cd,title
1,aaa
cd,title
1,aaa
cd,title
1,aaa
cd,title
1,aaa
cd,title
1,aaa

 


元職業プログラマ・エンジニアのMiyamoto

地域、クラウドファンディング、都市伝説、AI、人工知能、宇宙に興味があります。

Twitterやっているので宜しくお願い致します。

twitter.com

Pythonで収集したデータを小規模フレームワーク「Flask」で画面表示させてみた。

どーもです。

なんちゃってエンジニアです。

元職業エンジニア・プログラマの人工知能と未来の道楽日記

 

今回は、Pythonの小規模フレームワーク「Flask」をいじってみました。

フレームワークも沢山あるようで、有名どころは「Django」「Bottle」とかですね。

 

今回なぜ「Flask」かというのはなんとなく目に入ったから。

 

使用した言語などの情報は以下。

言語;Python3

フレームワーク:Flask

その他:HTML・CSS

 

結果からだします。

それらしい画面表示ができました!

Pythonの小規模フレームワーク「Flask」をいじったHTML画像

Pythonで動いています!

色々なボタンがありますが、ブラフなので実際にクリックできるのは2つ程度…

 

今回はこれだけです・・・とりあえず動いた程度。

次回はFlaskの動作、表示プログラム(HTMLとか、そこらへんの構成とか)を展開していきたいと想います。

 

本日の備忘録として。

それでは。

 


元職業プログラマ・エンジニアのMiyamoto

地域、クラウドファンディング、都市伝説、AI、人工知能、宇宙に興味があります。

Twitterやっているので宜しくお願い致します。

twitter.com

Pythonでクラウドファンディングサイトからカテゴリ取得プログラム(データベース編その3)

どうもです。

なんちゃってエンジニアです。

元職業エンジニア・プログラマの人工知能と未来の道楽日記

 

今回は、クラウドファンディングサイト(Makuake、Readyfor?、CAMPFIRE)から取得した各プロジェクトの詳細情報をデータベースに格納する際の設計をしたものを公開。
 

使用した言語などの情報は以下。

 

データベース;MySQL5.7

 

以下、データベースの設計と実装です。

 

テーブル:cw_project

項目 キー 備考
ID 1:Makuake
2:Campfire
3:Readyfor
NO プロジェクトNo
GETDATE 取得日
PERSON  

実行者

TARGET  

目標金額

GET  

支援金額

GET  

パトロン

STATUS  

ステータス

(終了、残日数など)

REGIST_DATE

  取得したタイムタンプ

 

属性なり他の設定については、SQL文を掲載するのでそれを見てください。

全体的に結構適当です…

 

SQLでテーブル作成文

①まずは、テーブルが存在していればテーブルを削除
DROP TABLE IF EXISTS `cw_detail`;

②テーブル作成
CREATE TABLE `cw_detail` (
`ID` VARCHAR(5) NOT NULL,
`NO` BIGINT(100) NOT NULL,
`GETDATE` DATE NOT NULL,
`PERSON` VARCHAR(30) NOT NULL,
`TARGET` BIGINT(10) NOT NULL,
`GET` BIGINT(10) NOT NULL,
`PATRON` BIGINT(10) NOT NULL,
`STATUS` VARCHAR(30) NOT NULL,
`REGIST_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`ID`, `NO`, `GETDATE`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

 

各サイトのプロジェクトの判別は、IDとNOで区別できるかと思います。

重要な

・実行者

・目標金額

・支援金額

・パトロン数

・ステータス 

を差分収集していく想定をしています。

 

収集自体は、週に1回ペース程度かな?

 

ご指摘あれば教えてください^^

それでは。

 


元職業プログラマ・エンジニアのMiyamoto

地域、クラウドファンディング、都市伝説、AI、人工知能、宇宙に興味があります。

Twitterやっているので宜しくお願い致します。

twitter.com

データ解析ライブラリのPython・Pandasをいじってみた。

どうもです。

なんちゃってエンジニアです。

元職業エンジニア・プログラマの人工知能と未来の道楽日記

 

今回は、Pythonのデータ解析で利用されるPandasについて動かしてみたので、備忘録として掲載します。

 

やったことですが、私のツイートデータ(3か月)のツイートインプレッションが100以上で、かつ、その最小値・最大値・合計値を取る、簡単なプログラムです。

 

下記も見ていますので参考まで。

qiita.com

qiita.com

 

前提:

3ファイルを用意しています。

 ・tweet_activity_metrics_startupimyme_20170201_20170301_ja.csv

 ・tweet_activity_metrics_startupimyme_20170301_20170401_ja.csv

 ・tweet_activity_metrics_startupimyme_20170401_20170501_ja.csv

 

前文(Import文)

# -*- coding: utf-8 -*-

import glob
import numpy as np
import pandas as pd

 

取得プログラム:

1ファイルずつ取得をして解析。

class GetPdTest:

def pdFrame(self):
files = glob.glob('./data/tweet*.csv')
for file in files:
print('-----------------------------')
print('取得月 : ' + file.split("_")[4][:6])
print('*****************************')
data = pd.read_csv(file)
df = pd.DataFrame({
'ID' : data['ツイートID'],
'post' : data['時間'],
'Imp' : data['インプレッション'],
'Eng' : data['エンゲージメント'],
'Good' : data['いいね'],
'Retweet' : data['リツイート']
})
print('最小値 : ' + str(df.query("Imp >= 100")["Imp"].min()))
print('最大値 : ' + str(df.query("Imp >= 100")["Imp"].max()))
print('合計値 : ' + str(df.query("Imp >= 100")["Imp"].sum()))

if __name__ == '__main__':

base = GetPdTest()
base.pdFrame()

 

結果:

-----------------------------
取得月 : 201702
*****************************
最小値 : 207.0
最大値 : 207.0
合計値 : 207.0
-----------------------------
取得月 : 201703
*****************************
最小値 : 123.0
最大値 : 890.0
合計値 : 1611.0
-----------------------------
取得月 : 201704
*****************************
最小値 : 114.0
最大値 : 1993.0
合計値 : 5288.0

 

こんな感じになりました。

今回は本当の動作検証程度で、データ解析における初歩にも満たないことです。

これから励んでいきたいと思います。

 

それでは。

 


元職業プログラマ・エンジニアのMiyamoto

地域、クラウドファンディング、都市伝説、AI、人工知能、宇宙に興味があります。

Twitterやっているので宜しくお願い致します。

twitter.com

Pythonでクラウドファンディングサイトからカテゴリ取得プログラム(データベース編その2)

こんにちは。

なんちゃってエンジニアです。

元職業エンジニア・プログラマの人工知能と未来の道楽日記

 

今回は、クラウドファンディングサイト(Makuake、Readyfor?、CAMPFIRE)から取得した各プロジェクトをデータベースに格納する際の設計をしたものを公開。

 

「Makuake」さんのカテゴリ取得はこちら↓

adweallab.hatenablog.com

 

「CAMPFIRE」さんのカテゴリ取得はこちら↓

adweallab.hatenablog.com

 

「Readyfor?」さんのカテゴリ取得はこちら↓

adweallab.hatenablog.com
 

使用した言語などの情報は以下。

 

データベース;MySQL5.7

 

以下、データベースの設計と実装です。

 

テーブル:cw_project

項目 キー 備考
ID 1:Makuake
2:Campfire
3:Readyfor
NO プロジェクトNo
CATEGORY  

カテゴリ名

NAME  

プロジェクト名

URL  

プロジェクトURL

REGIST_DATE

  取得したタイムタンプ

 

属性なり他の設定については、SQL文を掲載するのでそれを見てください。

全体的に結構適当です…

 

SQLでテーブル作成文

①まずは、テーブルが存在していればテーブルを削除
DROP TABLE IF EXISTS `cw_project`;

②テーブル作成
CREATE TABLE `cw_project` (
`ID` VARCHAR(5) NOT NULL,
`NO` BIGINT(100) NOT NULL,
`CATEGORY` VARCHAR(50) NOT NULL,
`NAME` VARCHAR(200) NOT NULL,
`URL` TEXT NOT NULL,
`REGIST_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`ID`, `NO`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

 

NOの扱いって…どうなんでしょう?修正有ると思います!

それとカテゴリ名についてはそのまま日本語文字を入れているので、データ気にするのであれば、コード管理が望ましいですね。

 

ご指摘あれば教えてください^^

それでは。

 


元職業プログラマ・エンジニアのMiyamoto

地域、クラウドファンディング、都市伝説、AI、人工知能、宇宙に興味があります。

Twitterやっているので宜しくお願い致します。

twitter.com

Pythonでクラウドファンディングサイトからプロジェクト取得プログラム(Readyfor版)

こんばんは。

なんちゃってエンジニアです。

元職業エンジニア・プログラマの人工知能と未来の道楽日記

 

今回はReadyforさんのカテゴリをぐるぐる回して全プロジェクトとURLを取得してみました。

 

※カテゴリ取得のブログは下記です。

adweallab.hatenablog.com

 

データベース設計のブログは下記です。

adweallab.hatenablog.com

 

使用した言語などの情報は以下。

言語;Python3

ライブラリ:BeatifulSoup4

データベース;MySQL5.7

 

全体の流れとしては、

①テーブルからカテゴリ情報を取得

②カテゴリURLがなくなるまで下記を実施

 - カテゴリURLページを開く

 - ページングが終了するまで下記を実施

  1. ページに掲載されているプロジェクト名とURL取得

  2. データの整形

  3. データベース接続でInsert処理

 

ざっくりこんな感じで取得できました。

 

課題:

①ページングの終了がよろしくない気がする。

②データを配列化してからデータベース連携のほうがいいのかな。

③トライキャッチをちゃんとやっていない・・・。

 参考:8. エラーと例外 — Python 3.6.1 ドキュメント

 

全文掲載はしませんが、こんな感じで。

def getProject(self, ID):
sw = ''
if ID == '3':
urlReplace = 'https://readyfor.jp'
res = self.con.selectCategory(ID, self.CWCATEGORY)
for category in res:
pageCnt = 1
projectCnt = 0
projectCntSv = 0
CATEGORY = category[1]
while sw != 'end':
urlOpen = category[2] + '?page=' + str(pageCnt)
html = urllib2.urlopen(urlOpen)
soup = BeautifulSoup(html, 'lxml')
if sw != soup.find_all('meta')[4]['content']:
sw = soup.find_all('meta')[4]['content']
Target = soup.find_all('article')
for projectURL in Target:
URL = projectURL.a.get('href').strip()
if URL.find('project') == 1:
projectCnt = projectCnt + 1
projectName = self.func_esc(projectURL.h3.text.strip())
self.con.insertProject(ID, CATEGORY, projectName, urlReplace + projectURL.a.get('href').strip())
if projectCntSv == projectCnt:
sw = 'end'
else:
projectCntSv = projectCnt
else:
sw = 'end'
sleep(5)
pageCnt = pageCnt + 1
sw = ''

 

補足として、引数のIDは1,2,3のいずれかをいれます。

1:Makuakeさん

2:CAMPFIREさん

3:Readyforさん

こんなイメージです。

 

「self.CWCATEGORY」は、テーブル名の指定。

 

まだまだ課題は沢山あるので、時間をみつけてトライキャッチしていきたい。

 

本日の備忘録として。

それでは。

 


元職業プログラマ・エンジニアのMiyamoto

地域、クラウドファンディング、都市伝説、AI、人工知能、宇宙に興味があります。

Twitterやっているので宜しくお願い致します。

twitter.com

Pythonでクラウドファンディングサイトからプロジェクト取得プログラム(CAMPFIRE版)

こんばんは。

なんちゃってエンジニアです。

元職業エンジニア・プログラマの人工知能と未来の道楽日記

 

以前はサイトからカテゴリを取得したので、今回はそのカテゴリをぐるぐる回して全プロジェクトとURLを取得してみました。

 

※カテゴリ取得のブログは下記です。

adweallab.hatenablog.com

 

データベース設計のブログは下記です。

adweallab.hatenablog.com

 

使用した言語などの情報は以下。

言語;Python3

ライブラリ:BeatifulSoup4

データベース;MySQL5.7

 

全体の流れとしては、

①テーブルからカテゴリ情報を取得

②カテゴリURLがなくなるまで下記を実施

 - カテゴリURLページを開く

 - ページングが終了するまで下記を実施

  1. ページに掲載されているプロジェクト名とURL取得

  2. データの整形

  3. データベース接続でInsert処理

 

ざっくりこんな感じで取得できました。

Makuakeさんの取得と違って、URLチェックをしてページング管理をしています。

 

課題:

①ページングの終了処理の精査

②データを配列化してからデータベース連携のほうがいいのかな。

③トライキャッチをちゃんとやっていない・・・。

 参考:8. エラーと例外 — Python 3.6.1 ドキュメント

 

全文掲載はしませんが、こんな感じで。

def getProject(self, ID):
sw = ''
if ID == '2':
urlReplace = 'https://camp-fire.jp'
res = self.con.selectCategory(ID, self.CWCATEGORY)
for category in res:
pageCnt = 1
CATEGORY = category[1]
while sw != 'end':
urlOpen = category[2] + '/fresh/page:' + str(pageCnt)
sign = self.checkURL(urlOpen)
if sign != "NotFound":
html = urllib2.urlopen(urlOpen)
soup = BeautifulSoup(html, 'lxml')
sw = soup.find_all('meta')[10]['content']
Target = soup.find_all(class_='box-title')
for projectURL in Target:
projectName = self.func_esc(projectURL.a.text.strip())
URL = projectURL.a.get('href').strip()
if URL.find('projects') >= 0:
self.con.insertProject(ID, CATEGORY, projectName, urlReplace + URL)
else:
sw = 'end'
sleep(5)
pageCnt = pageCnt + 1
sw = ''

 

補足として、引数のIDは1,2,3のいずれかをいれます。

1:Makuakeさん

2:CAMPFIREさん

3:Readyforさん

こんなイメージです。

 

「self.CWCATEGORY」は、テーブル名の指定。

「self.checkURL」は、正常なURLであれば、「Found」、異常であれば「NotFound」を返却する関数になっております。

 

まだまだ課題は沢山あるので、時間をみつけてトライキャッチしていきたい。

 

本日の備忘録として。

それでは。

 


元職業プログラマ・エンジニアのMiyamoto

地域、クラウドファンディング、都市伝説、AI、人工知能、宇宙に興味があります。

Twitterやっているので宜しくお願い致します。

twitter.com

Pythonでクラウドファンディングサイトからプロジェクト取得プログラム(Makuake版)

こんばんは。

なんちゃってエンジニアです。

元職業エンジニア・プログラマの人工知能と未来の道楽日記

 

以前はサイトからカテゴリを取得したので、今回はそのカテゴリをぐるぐる回して全プロジェクトとURLを取得してみました。

 

※カテゴリ取得のブログは下記です。

adweallab.hatenablog.com

 

データベース設計のブログは下記です。

adweallab.hatenablog.com

 

使用した言語などの情報は以下。

言語;Python3

ライブラリ:BeatifulSoup4

データベース;MySQL5.7

 

全体の流れとしては、

①テーブルからカテゴリ情報を取得

②カテゴリURLがなくなるまで下記を実施

 - カテゴリURLページを開く

 - ページングが終了するまで下記を実施

  1. ページに掲載されているプロジェクト名とURL取得

  2. データの整形

  3. データベース接続でInsert処理

 

ざっくりこんな感じで取得できました。

 

課題:

①ページングの終了がよろしくない気がする。

②データを配列化してからデータベース連携のほうがいいのかな。

③トライキャッチをちゃんとやっていない・・・。

 参考:8. エラーと例外 — Python 3.6.1 ドキュメント

 

全文掲載はしませんが、こんな感じで。

def getProject(self, ID):
sw = ''
if ID == '1':
urlReplace = 'https://www.makuake.com'
res = self.con.selectCategory(ID, self.CWCATEGORY)
for category in res:
pageCnt = 1
CATEGORY = category[1]
while sw != 'end':
urlOpen = category[2] + str(pageCnt)
html = urllib2.urlopen(urlOpen)
soup = BeautifulSoup(html, 'lxml')
if sw != soup.find_all('meta')[3]['content']:
sw = soup.find_all('meta')[3]['content']
Target = soup.find_all(class_='projectBox')
for projectURL in Target:
projectName = self.func_esc(projectURL.a.text.strip())
self.con.insertProject(ID, CATEGORY, projectName, urlReplace + projectURL.a.get('href').strip())
else:
sw = 'end'
sleep(5)
pageCnt = pageCnt + 1
sw = ''

 

補足として、引数のIDは1,2,3のいずれかをいれます。

1:Makuakeさん

2:CAMPFIREさん

3:Readyforさん

こんなイメージです。

 

「self.CWCATEGORY」は、テーブル名の指定。

 

まだまだ課題は沢山あるので、時間をみつけてトライキャッチしていきたい。

 

本日の備忘録として。

それでは。

 


元職業プログラマ・エンジニアのMiyamoto

地域、クラウドファンディング、都市伝説、AI、人工知能、宇宙に興味があります。

Twitterやっているので宜しくお願い致します。

twitter.com

リクルートが無償提供してるAI・機械学習のAPIを叩いてみた(Proofreading API編)

こんにちは。

なんちゃってエンジニアです。

元職業エンジニア・プログラマの人工知能と未来の道楽日記

 

前回に引き続き、リクルート提供のAI・機械学習APIである「A3RT」を触りました。

 

今回は「Proofreading API」。

 

こちらは、入力文章に対して間違ってる?怪しい箇所を検出してくれるAPIのようです。

返却値として、怪しさを数値で出してくれます。0〜2の間。

0:やや疑わしい単語です。もっと良い表現がある可能性があります。

1:疑わしい単語です。あまり使われない表現であったり、珍しい単語である可能性があります。

2:かなり疑わしい単語です。誤字の可能性が高いです。

 ということらしいです。

 

Text Suggestと同様、APIをゲットすればCURLコマンドを使わずにも利用できますので早速みてみましょう!


実行自体は簡単で、

本家サイトの「Proofreading API」サイトからAPIキーを発行

②ブラウザで下記を実行

https://api.a3rt.recruit-tech.co.jp/proofreading/v1/typo?apikey=XXXXXXXXXXXXXXXXXXXXXXXX&sentence=チェック文章

コールバックも設定できます。

 

「チェック文章」に、「システムの企画から開発・運用まで幅広く関われます。」を入れて実行してみました!

 

ブラウザ結果

{"status": 0, "message": "ok"}

 

続いて!

「チェック文章」に、「システムの鬼角から開発・運用まで幅広く関われます。」を入れて実行してみました!

 

ブラウザ結果

{
"status": 1,
"message":
"pointed out",
"alerts":
[{"checkedSentence":
"システム の <<鬼>> 角 から 開発 ・ 運用 まで 幅広く 関われ ます 。",
"alertCode": 0,
"alertDetail":
"a little unnatural",
"word": "鬼",
"rankingScore": 0.03981165773664556
},
{"checkedSentence":
"システム の 鬼 <<角>> から 開発 ・ 運用 まで 幅広く 関われ ます 。",
"alertCode": 1,
"alertDetail":
"unnatural",
"word": "角",
"rankingScore": 0.25483032959896085}
]}

 

ん〜すごい間違いの指摘…

「鬼」「角」それぞれ誤っているとのこと。

 

alertCodeの数値が先に示した0〜2に間違い度。

その間違い度の数値がrankingScoreになりますね。

 

 

面白くできそうな予感は多分感じます。

 

今回はここまで。

 

それでは。

 


元職業プログラマ・エンジニアのMiyamoto

地域、クラウドファンディング、都市伝説、AI、人工知能、宇宙に興味があります。

Twitterやっているので宜しくお願い致します。

twitter.com