Sansan Tech Blog

Sansanのものづくりを支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信

高橋寛治 の検索結果:

社内LTでの発表を振り返る

…SOC 研究開発部の高橋寛治です。 LT(Lightning Talk) とは文字通り、さくっと数分で終わる話のことです。 Sansanでは気軽に参加できるエンジニアLT大会がしばしば自主的に行われています。 さらにLT大会は、Geek Seek Workshop*1 として費用補助がでるため、気軽に誘いやすいです。 定番メニューは、フライドチキンやハンバーガーといったファーストフードと、ジュースやビールなどの体に優しい飲料です。 まぁ、手がベトベトになるため、お手拭きが必須…

【Techの道も一歩から】第26回「BERTで日本語固有表現抽出器を作ってみた」

…SOC 研究開発部の高橋寛治です。 流行りの BERT(Bidirectional Encoder Represenations from Transformers) ですが、論文を読んだあと、マスク部分を当てるというサンプルを動かしその的確さに驚いたところで、手が止まっていました。 今回は、BERTの特徴である優れた言語モデルを利用して、日本語固有表現抽出器を作ってみました。 その手順をいくつかかいつまんで紹介します。 準備から学習 BERT の実装には、 Hugging …

【Techの道も一歩から】第25回「できる限りわかりやすく規則による前処理・後処理を記述する」

… R&D グループの高橋寛治です。 テキストに対して何かしらのアルゴリズムにより結果を得た際に、どうしても出力したくない項目や、少し前処理を書けば改善される、といったことがあります。 例えば機械学習の出力を調整するには、パラメータの調整や学習データの整備となかなか大変な作業が必要ですが、現場ではできる限り早く結果を提供するために、前処理や後処理を追加して対応することがよくあります。 その際に極端な話ですが、都度都度コードに if 文を追記すると、後から読むのが非常に大変になり…

【Techの道も一歩から】第24回「高速かつ省メモリな辞書ライクなライブラリDAWG」

… R&D グループの高橋寛治です。 Pythonの辞書オブジェクトは取り扱いやすいため、単語とIDの変換テーブルを作ったり、複合語の結合のためにデータ構造を工夫して簡易なトライ木を構築したりと、自分でコーディングすることがあるかと思います。 上記の場合は、ライブラリDAWGを使うことで省メモリかつ高速に、さらにできることが増えるかもしれません。 今回はそんな便利なライブラリの紹介をします。 辞書ライクなライブラリDAWG DAWGはDirected Acyclic Word …

【Techの道も一歩から】第23回「pybind11を使ってPythonで利用可能なC++ライブラリを実装する」

… R&D グループの高橋寛治です。 普段はPython言語によりアルゴリズムの実装を行っています。 スクリプト言語はコンパイルが不要であり、試行錯誤しやすいためです。 しかしながら、実行速度はコンパイル言語に比べて見劣りします。 そこで今回は、高速動作を目的にC++で実装したアルゴリズムをPythonライブラリとして利用する方法について紹介します。 社内で使うアルゴリズムについて計算量が多い処理を実装したところ、Python比で10倍ほど早くなりました。 pybind11とは…

書籍購入支援制度'Geek Seek Book'を活用して今年購入した本

… R&D グループの高橋寛治です。 この記事は Sansan Advent Calendar 2019 - Adventar の初日の記事です。 ゆるい記事にお付き合いいただけると幸いです。 Sansanの社内制度の一つに、書籍・資料の購入支援を行う Geek Seek Book があります。 本制度は、専門知識や技術を要する社員を支援する制度であり、書籍は年間6万円まで購入が支援されます。Geek Seek制度については、こちらの記事でも紹介されています。 しっかり読みたい…

はじめてのサイレントセッションでの登壇:Sansan Builders Box 2019

…C R&Dグループの高橋寛治です。 えっとぶり*2に人前でしゃべるのですが、なんと Sansan Builders Box 2019 はサイレントセッション*3です。 サイレントセッションは私自身も初めての経験で、不思議な感じでした。 今回は、Sansan Builders Box 2019 の雰囲気を交えつつ、サイレントセッションでの登壇についての感想をご紹介いたします。 サイレントセッションとは サイレントセッションとは、登壇者の声はマイクを通じて拡声器から発せられるので…

【Techの道も一歩から】第22回「AWS SageMakerで任意のコンテナをデプロイする」

… R&D グループの高橋寛治です。 最近は、R&DのD側に興味が寄っており、本連載では pytest や WebAPI化といった話が多くなってきました。 さて、つい先日に Amazon Web Services(AWS) が提供するマネージド型の機械学習サービスの一部機能を使って、機械学習を用いた任意のコンテナを推論エンドポイントとしてデプロイしました。 SageMakerのお作法さえ理解すれば便利なものだと感じたため、SageMakerの概略および任意のコンテナのデプロイ方…

Webからのデータ収集の入門書としておすすめ「Pythonクローリング&スクレイピング[増補改訂版]」

R&D

… R&D グループの高橋寛治です。 つい先日に同僚の加藤が執筆した書籍「Pythonクローリング&スクレイピング[増補改訂版]―データ収集・解析のための実践開発ガイドー」の改訂版が発売されました。 gihyo.jp 私が業務でPythonを用いたクローリングおよびスクレイピングに取り組んでいることもあり、改訂版のレビューをさせていただきました。 実は、初版は読んで実践させていただいていたため、レビュー依頼を受けた際には感激しました(本当にお世話になっている本です)。 読んでい…

【Techの道も一歩から】第21回「setup.pyを書いてpipでインストール可能にしよう」

… R&D グループの高橋寛治です。 前回の「CircleCI と pytest に入門」でさらっと触れた内容である、Python パッケージを pip 1 でインストール可能にする方法について、もう少し説明します。 pip でインストール可能な状態にすることにより、一行のコマンドでインストールできたり、名前空間を意識した良いコードになったりと、たくさんの利点があります。 何よりインストールが可能であるため、他の人に使ってもらえます! ただ、初めてパッケージを書くときは、独自記…

【Techの道も一歩から】第20回「CircleCIとpytestに入門」

… R&D グループの高橋寛治です。 アルゴリズムの考案と実装が主業務ですが、最近は少し幅を広げたテストを始めとしたコードの品質管理・運用など継続的インテグレーション(CI)に興味を持ち、少し取り組んでいます。 新しくアルゴリズムを実装する際に、CIツールのCircleCIとPythonのテストツールpytestを導入してみました。 今回はその導入方法について簡単に紹介を行います。 今回の目標 GitHubにプッシュした際に、次の項目を実現することを目標とします。 テストの実行…

【Techの道も一歩から】第19回「itertoolsを使おう」

… R&D グループの高橋寛治です。 桜の花びらが散り春の時候を感じる今日このごろ、スマブラだけでなくコーディングの季節もやってきたなと思っております。 意気込んでコーディングを始めたときに、たとえば2階層のリストを1階層に変形したり、条件に沿うものだけをリストから抽出したりする場合に、自分で実装してしまいがちです。 そのようなリストの各要素に対する処理について、高速かつメモリ効率のよい実装である itertools が Python の標準モジュールとして実装されています。 …

【Techの道も一歩から】第18回「アルゴリズムをコンテナ化しWebAPIとして利用可能に」

… R&D グループの高橋寛治です。 最近はスマブラSPの研究活動に熱心に取り組んでおり、少しずつ成果が出始めておりホッとしているところです。 さて、研究開発活動では何かしらのモデルやアルゴリズムを開発し、それを共有します。 共有する際に、環境の違いにより動作しなかったり、そもそもの利用方法がわからなかったりします。 こういった問題に対して、Docker コンテナにより WebAPI として提供することで、環境を問わず、かつ利用方法も明確にする方法について紹介します。 API提…

言語処理学会第25回年次大会に参加し発表しました

… R&D グループの高橋寛治です。 2019年3月12日から15日にわたり開催された言語処理学会第25回年次大会に参加し、ポスター発表を行いました。 本記事は、参加報告および発表内容の紹介となります。 言語処理学会第25回年次大会 言語処理学会が開催している年次大会で、国内の言語処理の研究者が一堂に会する年に一度のイベントだと言っても過言ではありません。 毎年3月の2〜3週目におおよそ1週間にわたって発表や講演があり、また懇親会や若手の会など、勉強だけでなく研究者間の交流も深…

第14回テキストアナリティクス・シンポジウムで発表しました

… R&D グループの高橋寛治です。 2019年2月7日と8日の2日間にわたり京都で開催された第14回テキストアナリティクス・シンポジウムに参加しました。 本記事は、参加報告および発表内容の紹介となります。 テキストアナリティクス・シンポジウム テキストアナリティクス・シンポジウムは、テキストの分析手法や分析のための基礎技術・実応用例などが議論される研究会です。 学術側、企業側から多数参加しており、産学交流の場でもあります。 私自身、本学会への参加は3回目(第11回は聴講)、発…

【Techの道も一歩から】第17回「チームで社内データアクセスライブラリを作った話」

… R&D グループの高橋寛治です。 光陰矢のごとしとはまさにこのことで、気づけば入社して2年が経とうとしています。 今でこそある程度わかってきましたが、入社当初はどこにどんなデータがあり、どのようにアクセスするのかよくわかっていませんでした。 知らないことを知るということは非常に難しく、「それさぁ。早く言ってよ〜」とどこかで聞いたことのあるようなフレーズをぼやくのは簡単なのです。 しかし、そういった事態を避けるために情報を共有しようとしますが、実際には非常に難しく感じます。 …

【Techの道も一歩から】第16回「Rに入門してテキストマイニング」

… R&D グループの高橋寛治です。 私が所属する R&D グループでは、プログラミングの使用言語は特に定まっていないので、私は使い慣れている Python を利用しています。 つい最近のことですが、別の研究員が R を用いてワードクラウドを作っているのを横目で見ていました。 コードを見させていただいたところ少量でわかりやすく、非常に便利そうだと感じました。 新年新しいことを始めてみようという気持ちも相まって、今回はRに入門してみます。 こちらの「Rによるテキストマイニング」を…

【Techの道も一歩から】第15回「Pythonによる正規表現のまとめ」

… R&D グループの高橋寛治です。 今回は、何かと忘れて検索しがちな正規表現についてまとめたいと思います。 正規表現の文法やPythonコードによる具体例で書くことで、備忘録としたいと思います。 正規表現とは? 正規表現( Regular Expression )とは、ある文字列を表現する表記法のことです。 ある文字列を表現するという特性を用いて、文字列の一致や置換、検索に利用されています。 どのような表記法か一例を挙げます。 たとえば、 ^ab.de$ という正規表現は、 …

【Geek Seek Toolsで買われた、気になるモノ達】第1回「ErgoDox EZ (左右分離キーボード)」

…C R&Dグループの高橋寛治さんにお話を伺いました。 キーボードを買うのは2年連続 ― 早速ですが、Geek Seek Toolsを利用して購入したキーボードについて教えてください。 ErgoDox EZという製品で、今年の4月に購入しました。 実はキーボードを買うのは2年連続でして、昨年はHHKB*2を購入していました。もともとHHKBは学生のときから愛用していたので会社でも同じ環境で、ということで購入していた経緯があります。そもそも昔から文字入力を如何に高速に行えるか、に…

【Techの道も一歩から】第14回「出現頻度と連接頻度に基づく専門用語抽出器を実装してみる」

… R&D グループの高橋寛治です。 最近、アルゴリズムを実装して勉強することにハマっています。 ある程度理解しないと実装できないですし、そもそも実装したものが動くということは非常に嬉しいものです。 さて、今回は最近実装した「出現頻度と連接頻度に基づく専門用語抽出器」について理論と実装の紹介を行います。 早く実装が見たいというかたは、こちらからすぐにご覧いただけます。 「出現頻度と連接頻度に基づく専門用語抽出」の理論 次の論文の内容を実装します。 中川 裕志, 湯本 紘彰, 森…

【Techの道も一歩から】第13回「文書や単語をどうやって表現するかコサイン類似度で学ぶ」

… R&D グループの高橋寛治です。 前回のTF-IDFで、使ってはいたけれど触れなかった文書や単語の表現方法について述べます。 実際に文書をベクトルとして表現し、コサイン類似度を計算することで理解を深めます。 scikit-learnを使わずにできる限りnumpyを利用してコードを記述してみます。 ノートブックはこちらにあります。 ベクトルで取り扱うと計算しやすい 自然言語を取り扱う研究では、文書や単語といったように自然言語を何らかの単位で取り扱います。 自然言語処理でも活用…

【Techの道も一歩から】第12回「基礎的な考え方であるTF-IDFを学ぶ」

… R&D グループの高橋寛治です。 前回のブログの終わりに書きましたが、今回からは言語処理のアルゴリズムの紹介を行います。 ただ単にアルゴリズムを紹介するだけではなく、実際に実装し動作させた結果も掲載することで直感的な感覚も掴めるものにしたいと思います。 まずは、単純かつよく利用されるTF-IDFから始めていきます。 TF-IDFの基本的な考え方 TF(Term Frequency)-IDF(Inverse Document Frequency)とは、文書中の単語の重要度を頻…

© Sansan, Inc.