Techの道も一歩から の検索結果:
こんにちは。DSOC 研究開発部の高橋寛治です。 いつもお世話になっている PDF ファイルを対象に Python3 で操作します。 PDF ファイルを読み込み、文字を書き込んで、「Hello World!」と世界に挨拶をする方法を紹介します。
こんにちは。DSOC 研究開発部の高橋寛治です。 新型コロナウイルス感染症対策では、外出自粛を徹底することが大事とされており、自宅でできる遊びを日々模索中です。 さて、今回は自宅のノートパソコンや物を使って、深層学習による物体検出で遊びます。 物体検出はなんとなく知っていただけなのですが、実際動かしてみると楽しいものです。 今回作るもの リアルタイムでの任意の物体検出を作ります。 今回、検出したいものはゲームのコントローラー類です。 似たようなものばかり買って何になるのかと、…
こんにちは。DSOC 研究開発部の高橋寛治です。 今回は、前回の 「BERTで日本語固有表現抽出器を作ってみた」 に続き、作った固有表現抽出器をWebAPI化します。 モデルを把握する transformers ライブラリの 固有表現抽出のサンプル を流用してモデルを作成しました。 こちらのコードをもとに学習を実行すると、コマンドライン引数で指定したディクレトリにモデルファイルが出力されます。 model_dir ├── config.json ├── eval_result…
こんにちは。DSOC 研究開発部の高橋寛治です。 流行りの BERT(Bidirectional Encoder Represenations from Transformers) ですが、論文を読んだあと、マスク部分を当てるというサンプルを動かしその的確さに驚いたところで、手が止まっていました。 今回は、BERTの特徴である優れた言語モデルを利用して、日本語固有表現抽出器を作ってみました。 その手順をいくつかかいつまんで紹介します。 準備から学習 BERT の実装には、 H…
こんにちは。 DSOC R&D グループの高橋寛治です。 テキストに対して何かしらのアルゴリズムにより結果を得た際に、どうしても出力したくない項目や、少し前処理を書けば改善される、といったことがあります。 例えば機械学習の出力を調整するには、パラメータの調整や学習データの整備となかなか大変な作業が必要ですが、現場ではできる限り早く結果を提供するために、前処理や後処理を追加して対応することがよくあります。 その際に極端な話ですが、都度都度コードに if 文を追記すると、後から読…
こんにちは。Sansan事業部プロダクト開発部でエンジニアをしている 黒澤です。半年ほど前にSBBに寄稿させていただいたときは、新規事業の立ち上げをしていると書かせていただきましたが、 11月のサービス提供開始と共に、古巣であったSansanプロダクト開発部へと戻ってまいりました。 今回は、この新規事業として作っていた機能で Serverless な機能を作ってみたお話をさせていただこうかと思います。 buildersbox.corp-sansan.com今となってはかなりS…
こんにちは。 DSOC R&D グループの高橋寛治です。 Pythonの辞書オブジェクトは取り扱いやすいため、単語とIDの変換テーブルを作ったり、複合語の結合のためにデータ構造を工夫して簡易なトライ木を構築したりと、自分でコーディングすることがあるかと思います。 上記の場合は、ライブラリDAWGを使うことで省メモリかつ高速に、さらにできることが増えるかもしれません。 今回はそんな便利なライブラリの紹介をします。 辞書ライクなライブラリDAWG DAWGはDirected Ac…
こんにちは。 DSOC R&D グループの高橋寛治です。 普段はPython言語によりアルゴリズムの実装を行っています。 スクリプト言語はコンパイルが不要であり、試行錯誤しやすいためです。 しかしながら、実行速度はコンパイル言語に比べて見劣りします。 そこで今回は、高速動作を目的にC++で実装したアルゴリズムをPythonライブラリとして利用する方法について紹介します。 社内で使うアルゴリズムについて計算量が多い処理を実装したところ、Python比で10倍ほど早くなりました。…
こんにちは。 DSOC R&D グループの高橋寛治です。 最近は、R&DのD側に興味が寄っており、本連載では pytest や WebAPI化といった話が多くなってきました。 さて、つい先日に Amazon Web Services(AWS) が提供するマネージド型の機械学習サービスの一部機能を使って、機械学習を用いた任意のコンテナを推論エンドポイントとしてデプロイしました。 SageMakerのお作法さえ理解すれば便利なものだと感じたため、SageMakerの概略および任意…
こんにちは。 DSOC R&D グループの高橋寛治です。 前回の「CircleCI と pytest に入門」でさらっと触れた内容である、Python パッケージを pip 1 でインストール可能にする方法について、もう少し説明します。 pip でインストール可能な状態にすることにより、一行のコマンドでインストールできたり、名前空間を意識した良いコードになったりと、たくさんの利点があります。 何よりインストールが可能であるため、他の人に使ってもらえます! ただ、初めてパッケー…
こんにちは。 DSOC R&D グループの高橋寛治です。 アルゴリズムの考案と実装が主業務ですが、最近は少し幅を広げたテストを始めとしたコードの品質管理・運用など継続的インテグレーション(CI)に興味を持ち、少し取り組んでいます。 新しくアルゴリズムを実装する際に、CIツールのCircleCIとPythonのテストツールpytestを導入してみました。 今回はその導入方法について簡単に紹介を行います。 今回の目標 GitHubにプッシュした際に、次の項目を実現することを目標と…
こんにちは。 DSOC R&D グループの高橋寛治です。 桜の花びらが散り春の時候を感じる今日このごろ、スマブラだけでなくコーディングの季節もやってきたなと思っております。 意気込んでコーディングを始めたときに、たとえば2階層のリストを1階層に変形したり、条件に沿うものだけをリストから抽出したりする場合に、自分で実装してしまいがちです。 そのようなリストの各要素に対する処理について、高速かつメモリ効率のよい実装である itertools が Python の標準モジュールとし…
こんにちは。 DSOC R&D グループの高橋寛治です。 最近はスマブラSPの研究活動に熱心に取り組んでおり、少しずつ成果が出始めておりホッとしているところです。 さて、研究開発活動では何かしらのモデルやアルゴリズムを開発し、それを共有します。 共有する際に、環境の違いにより動作しなかったり、そもそもの利用方法がわからなかったりします。 こういった問題に対して、Docker コンテナにより WebAPI として提供することで、環境を問わず、かつ利用方法も明確にする方法について…
こんにちは。 DSOC R&D グループの高橋寛治です。 光陰矢のごとしとはまさにこのことで、気づけば入社して2年が経とうとしています。 今でこそある程度わかってきましたが、入社当初はどこにどんなデータがあり、どのようにアクセスするのかよくわかっていませんでした。 知らないことを知るということは非常に難しく、「それさぁ。早く言ってよ〜」とどこかで聞いたことのあるようなフレーズをぼやくのは簡単なのです。 しかし、そういった事態を避けるために情報を共有しようとしますが、実際には非…
こんにちは。 DSOC R&D グループの高橋寛治です。 私が所属する R&D グループでは、プログラミングの使用言語は特に定まっていないので、私は使い慣れている Python を利用しています。 つい最近のことですが、別の研究員が R を用いてワードクラウドを作っているのを横目で見ていました。 コードを見させていただいたところ少量でわかりやすく、非常に便利そうだと感じました。 新年新しいことを始めてみようという気持ちも相まって、今回はRに入門してみます。 こちらの「Rによる…
こんにちは。 DSOC R&D グループの高橋寛治です。 今回は、何かと忘れて検索しがちな正規表現についてまとめたいと思います。 正規表現の文法やPythonコードによる具体例で書くことで、備忘録としたいと思います。
こんにちは。 DSOC R&D グループの高橋寛治です。 最近、アルゴリズムを実装して勉強することにハマっています。 ある程度理解しないと実装できないですし、そもそも実装したものが動くということは非常に嬉しいものです。 さて、今回は最近実装した「出現頻度と連接頻度に基づく専門用語抽出器」について理論と実装の紹介を行います。 早く実装が見たいというかたは、こちらからすぐにご覧いただけます。 「出現頻度と連接頻度に基づく専門用語抽出」の理論 次の論文の内容を実装します。
こんにちは。 DSOC R&D グループの高橋寛治です。 前回のTF-IDFで、使ってはいたけれど触れなかった文書や単語の表現方法について述べます。 実際に文書をベクトルとして表現し、コサイン類似度を計算することで理解を深めます。 scikit-learnを使わずにできる限りnumpyを利用してコードを記述してみます。 ノートブックはこちらにあります。 ベクトルで取り扱うと計算しやすい 自然言語を取り扱う研究では、文書や単語といったように自然言語を何らかの単位で取り扱います。…
Techの道も一歩から こんにちは。 DSOC R&D グループの高橋寛治です。 前回のブログの終わりに書きましたが、今回からは言語処理のアルゴリズムの紹介を行います。 ただ単にアルゴリズムを紹介するだけではなく、実際に実装し動作させた結果も掲載することで直感的な感覚も掴めるものにしたいと思います。 まずは、単純かつよく利用されるTF-IDFから始めていきます。 TF-IDFの基本的な考え方 TF(Term Frequency)-IDF(Inverse Document Fr…