Hazy Ideas

日々の勉強の気づきを書き出しています

DeepL個人的Tips(画像から読み込み、大量文字のコピー)

あまり知られていないであろう個人的なDeepLアプリの活用テクニックを紹介します。

 

1)画像のテキスト読み込み

PDFや写真の文字を翻訳したいときに使います(今ではスマホの標準カメラでも同じことができますが、仕事ではPCメインですから)。

 

・DeepLのアプリの左上3本線マーク→「設定」→「キーボードショートカットキー」の順に進みます。

・上から2つ目の「画面上のテキストの取り込み」にチェックを入れる

・読みたい画像を開き、ctrl+F8でカーソルが十字になるので、読みたい個所をドラッグする

・DeepLアプリに翻訳結果が表示される

 

注意点としては、「設定」の「ファイルと翻訳」で日本語にチェックを入れていないと、日本語として読み取ってくれないことです。また読み取った文章は改行を取り除いてくれないため、自分で手直しする必要があり少し不便です。

 

2)大量文字列のコピー

DeepLキーボードショートカットのctrl+CCによるコピー&翻訳や、日本語訳された文章をコピーして他のファイルに張り付けることがよくあります。

短い文章だと問題ないですが、数千文字以上のコピーを一度にやろうとすると、クリップボードへのコピーがうまくいかないことがあり困っていました。何度やってもコピーできないので、文章を細切れにしてコピペを何度も反復したことがあります。単調作業で疲れました。

 

発見した対処法ですが、ctrl+CCやctrl+Cを押したときに数秒長押しすると、正しく機能することが分かりました。

 

おそらくDeepLアプリを動かすときに一時的にメモリの容量不足になる(?)のではないでしょうか(自宅のスペックの高めPCだと起こらないようでした)。

すぐにキーを離すと処理が追い付かないため、長押しして待つことでクリップボードにコピーされる時間をとると解決しました。

 

皆さんの効率化につながると幸いです。

 

2024年

新年の抱負を普段考えることはないが、せっかくなので勉強と本ブログについて考えてみる。

 

●勉強

・環境分野でひとつ、自身の強みをつくる

・実務で使えるように深層学習、強化学習について知見を深める

・ネイティブと話せるくらい英会話の訓練をする

・もうひとつ何かはじめる

 

●本ブログ

・分野問わず、更新頻度を増やす(目標 月2回)

 

本年もよろしくお願いします。

【業界説明】環境コンサルとは

環境コンサルティング業界で勤めていますが、この業界は外からは分かりづらいと感じます。一口に環境コンサルと言っても、やっていることがばらばらで、企業研究の際に苦労した覚えがあります。今後、就職や転職でこの業界を考える方のために、私なりの考えを整理してみます。

ここでの情報は1企業で勤めている筆者個人の考えであり、業界全体の共通認識でも、所属企業の見解でもありません。

環境コンサルティング企業とは

環境分野に特化したコンサルティング企業の総称です。分野としては、廃棄物、化学物質、海洋保全放射線など、様々な環境分野および環境に起因する人の健康問題に関する高い専門性を持っています。主要な顧客は、民間企業や行政の環境部門を担当する部署になります。

環境コンサルティング企業の業務分野

環境コンサルティング業界が取り扱う専門分野は、以下のように多岐にわたります。

  • 建築系:エンジニアリング、環境アセスメント
  • 化学系:川、海、土壌などの化学物質測定
  • 生物系:海や山での生物調査、自然環境調査
  • 経営系:ESGやTCFDなど企業の環境対応

これらの分野は複合的に関わっていて、環境分野の複雑さがうかがえます。環境コンサルティング企業には様々な環境分野のバックグラウンドを持った専門家が必要ともいえます。

環境コンサルティング企業の業務内容

環境コンサルティング企業が顧客から受注する具体的な業務には、以下のようなものがあります。

  • 現地調査、サンプル採取・計測
  • 建設計画に関する調査、計画立案、設計
  • 最新知見や海外動向の調査
  • 環境に関わる経営戦略策定
  • ソフトウェア開発

業務内容も様々ですので、企業ごとに得意な分野が決まっています。現場で測定・分析ができる技術がある企業もあれば、知見調査のみに特化した企業もあります。これが、環境コンサルティング企業を一概にとらえきれない所以でもあります。

環境コンサルティング企業の業種

上記で解説した通り、環境コンサルティング企業はそれぞれ得意分野があります。それは概ね、業種の違いと理解することができます。以下に、関係する業種をまとめました。

  • 建設コンサルタント:建物の建設に関わる調査、分析、計画立案、設計などに関する業務を行います。大手建設コンサルティング企業は環境部門を持っており、ここに含まれます。
  • 化学系調査会社:環境中の化学物質を測定する技術と知見を持った企業です。水質や土壌成分を調査します。独立系の分析会社が多くあります。
  • 生物系調査会社:自然環境の生物を調査します。建設コンサルティング企業が部門として保有している場合もありますし、独立系の企業もあります。
  • 環境アセスメント企業:新設時や建設後の環境調査を行う環境アセスメントを行う企業です。電力会社、石油化学や大手重工系企業のグループ企業・子会社に多いです。
  • シンクタンク:政策関連の調査に強みをもつ企業です。金融企業が親会社の国内大手シンクタンクが有名です。
  • 監査法人:金融領域に強く、ESGや環境経営に関する戦略立案が得意です。国内企業だけでなく、外資系企業も有名です。

環境コンサルタントに求められる資格等

環境コンサルティング企業で専門家として働くには、特に資格等は必要ありません。上記の多彩な業務からわかるように、一律に必要な資格や知見があるわけではありません。ですが、関連する分野の学位・高い専門性は必要で、仕事によっては技術士の資格、英語スキルは求められます。

また余談ですが、環境コンサルティングといっても会社によって業務内容や求められるスキルが異なるため、転職時によく調べる業界全体の情報(学位や職歴、平均年収など)はあまり参考にならないかもしれません。

まとめ

今回は環境コンサルティング企業について情報をまとめてみました。上記のある一分野の人間の意見ですので、興味のある方はぜひご自身で企業情報、転職口コミサイト、公共事業受注実績などを調べてみてください。

Pythonでスペースを含んだフォルダパスを読み込む(Google Colaboratory)

Google Colabでフォルダのパスが通らない事態と解決方法。大した話ではないけども、検索しても引っかからなかったので書きます。

 

問題のあったフォルダ名

フォルダdrive/MyDrive下に作成された標準名称が「Colab Notebooks」で、スペースが入っています。

 

事象

まずライブラリをインポートして、Google driveをマウントする。

import pandas as pd
from google.colab import drive
drive.mount('/content/drive')

その後、以下のようなコードを実行。

train = pd.read_csv('/content/drive/MyDrive/Colab Notebooks/xxxxxx/train.csv')

すると、

/content/drive/MyDrive/Colab

Notebooks/xxxxxx/train.csv

上記のように改行されて認識され、エラーが発生した。

スペースの部分をPython正規表現の「\」「\n」「\s」などに変えて試してみたが、うまくいかなかった。

 

対応策1

train = pd.read_csv('/content/drive/MyDrive/Colab_Notebooks/xxxxxx/train.csv')

フォルダ名をスペースをハイフンに「Colab_Notebooks」に変えたところ、当然うまくいきました。

 

対応策2

train = pd.read_csv("/content/drive/MyDrive/Colab Notebooks/xxxxxx/train.csv")

シングルクォーテーションをダブルクオーテーションに変更すると、うまく認識してくれました。

 

PythonでもRでも、記号の使い方でパスが正しく通るか変わることがあることは経験がありました。

今回、不思議だったのは、対応策2を一度試して以降、最初のシングルクォーテーションで挟む形式に戻してもパスが通ることです(なのでエラーが出たときのメッセージや画面を貼り付けられず)。

 

Minicondaインストール手順と最初のライブラリインストール

Acaconda環境から、Minicondaに移行したので、その過程をメモする。

はじめに

Anacondaはデータサイエンスに必要なパッケージが揃っていて、パッケージの依存関係も調整されている。しかし商用利用は有料とのことで、この先どのような利用方法になるかわからないので、Minicondaに移行しようと思う。Minicondaは管理システムcondaが使用できるが、最小限のパッケージの導入で済み、必要なパッケージは自分で追加するという仕組みである。インストール後のサイズがおおよそ、Anacondaで5GBに対し、Minicondaは0.5GB程度で済む。

 

1.Anacondaをインストールしている場合にはアンインストール

AnacondaとMinicondaは共存させられるみたいだが、紛らわしいので今回はインストール済みのAnacondaはアンインストールした。

 

2.Minicondaをダウンロード、インストール

Miniconda — miniconda documentation

Windows PCに64bitをダウンロードした。

 

Minicondaのインストールが済んだら、一旦PCを再起動する。次に、必要なパッケージのインストールに進む。

まずはwindowsボタンを押してから、Anaconda promptを起動する。

 

>conda list

>python -V

>conda -V

とりあえず、目下使いそうなパッケージをインストールする。

>conda install numpy matplotlib

>conda install jupyter notebook

>conda install notebook ipykernel(これはいらないかも)

 

Anaconda Prompt上で、以下を打つことでJupyter Notebookが起動できる。

>jupyter notebook

これで最低限のMiniconda環境を整えることができたはず。

Rのcaretパッケージを用いた機械学習テスト

今回は勉強用として、様々な機械学習の手法を用いてみます。

Rのcaretパッケージとは、機械学習の分類・回帰に用いられる様々なパッケージを統合して使いやすくしたパッケージです。今回はデータセットirisを用いて、まずは様々な手法を動かしてみることを目的とします。それぞれのモデルの説明、パラメータチューニングは割愛します(他のブログにお任せします)。

最初にデータセットの外観を確認します。

#アヤメの種類、花弁・がく片
head(iris)

目的変数をSpecies、花弁とがく片の長さと幅を説明変数にする方針とする。

k最近傍法

#k最近傍法
set.seed(123)
irisKNN <- train(
  Species ~ ., 
  data = irisTrain, 
  method = "knn", 
  trControl = trainControl(method = "cv")
)

predKNN <- predict(irisKNN, irisTest)
confusionMatrix(data = predKNN, irisTest$Species)

重回帰分析(多項ロジットモデル)

#重回帰分析
set.seed(123)
irisMlt <- train(
  Species ~ ., 
  data = irisTrain, 
  method = "multinom", 
  trControl = trainControl(method = "cv")
)

predMlt <- predict(irisMlt, irisTest)
confusionMatrix(data = predMlt, irisTest$Species)

サポートベクターマシン

#SVM
set.seed(123)
irisSVM <- train(
  Species ~ ., 
  data = irisTrain, 
  method = "svmLinear", 
  trControl = trainControl(method = "cv")
)

predSVM <- predict(irisSVM, irisTest)
confusionMatrix(data = predSVM, irisTest$Species)

決定木

#決定木
set.seed(123)
irisTree <- train(
  Species ~ ., 
  data = irisTrain, 
  method = "rpart", 
  trControl = trainControl(method = "cv")
)

predTree <- predict(irisTree, irisTest)
confusionMatrix(data = predTree, irisTest$Species)

ランダムフォレスト

#ランダムフォレスト
set.seed(123)
irisRF <- train(
  Species ~ ., 
  data = irisTrain, 
  method = "rf", 
  trControl = trainControl(method = "cv")
)

predRF <- predict(irisRF, irisTest)
confusionMatrix(data = predRF, irisTest$Species)

ニューラルネットワーク

#ニューラルネットワーク
set.seed(123)
irisNnet <- train(
  Species ~ ., 
  data = irisTrain, 
  method = "nnet", 
  trControl = trainControl(method = "cv"),
  linout = F
)

predNnet <- predict(irisNnet, irisTest)
confusionMatrix(data = predNnet, irisTest$Species)

勾配ブースティング(線形予測)

#xgboost 線形予測
set.seed(123)
modelXGB <- train(
  Species ~ ., 
  data = irisTrain,
  method = "xgbLinear", 
  trControl = trainControl(method = "cv")
)

predXGB <- predict(modelXGB, irisTest)
confusionMatrix(data = predXGB, irisTest$Species)

まとめ

irisデータはシンプルだった(植物のサイズなので、人間が関わることよりかはばらつきが少なそう)ため、分類結果に差が出ませんでしたね。精度は98%で、決定木以外はクロス集計表の結果も同じとなりました。

今回はデータの正規化、パラメータの検討など全く検討していません。本データを扱う時までに、背景知識目含めて学びなおしたいと思います。

ハングリーさを取り戻す

今日は久しぶりの、ただの日記。散歩しながら思ったこと。

 

生活環境が変わって、一定期間が過ぎた。仕事においては、理性的で聡明で、容易には追いつけないであろう高い専門性を持つ方々に囲まれている。任されている業務も、高い専門性が必要となりながら、かつ機械学習や生成系AIなど新しい知見の運用を求められる。

 

忙しさはプロジェクトごとに変わるので、落ち着いているときもあれば、残業続きの時もある。自身がプロジェクトマネージャーをできるころには、業務のコントロールもできるようになるだろう。

 

充実している。正社員という安定した立場の上で、日々のびのびと仕事と勉強ができている。

 

ふと散歩しながら、この心持ちでいいのかと思った。

日々様々なことに挑戦はしているけども、人生をかけた本気の挑戦ではない。失敗したら生活できなくなるというリスクを負っていない。youtuberとかお笑い芸人とか、本気で戦っている人達との差を感じる。

 

気持ちとして最近、体力が落ちた、遠出したくなくなった、お酒の量が減った、睡眠時間が増えたなど、衰えというか、だんだんと老けていくのを感じている。それが仕方ないのだと思っている自分がいる。会社員になって歳を取ることで、ハングリーさが失われてきた。

 

まずは自覚するところから。まだ落ち着くのには早いので、日々冒険していきたい。いきなち気持ちを変えるのは難しいので、まずは行動・生活習慣から戻して(変えて)いく。

人生、無理するしかない。

1年後このブログを読み返して、目標達成しているかまた日記を書く。