Hi, I'm altescy

Yasuhiro Yamaguchi

Research Engineer at Cookpad Inc.

I am a research engineer working at Cookpad Inc. My research topic is natural language processing and machine learning technology.

Python
Go
Rust
Docker
TypeScript
Vue.js

Experiences

1
Cookpad, Inc.

August 2019 - Present, Kanagawa, Japan

Cookpad is a tech company building a community platform for people to share recipe ideas and cooking tips.

Research Engineer

April 2021 - Present

Part-time Job

February 2020 - March 2021

Inetrn

August 2019 - September 2019

  • Build a machine learning system which automatically detects non-ingredient items in a user-posted online recipe.

Master's Student at Watanabe / Matsumoto Lab
Nara Institute of Science and Technology

April 2019 - March 2021, Nara, Japan

Nara Institute of Science and Technology (NAIST) is a Japanese national university located in Kansai Science City. Watanabe Laboratory is a laboratory focusing on natural language processing at NAIST.

Responsibilities:
  • I am focusing on information extraction from scientific papers.
  • Publish a paper about relation extraction from papers of material science at ANLP 2020.
  • Publish a paper about end-to-end information extraction with imbalanced data learning technique at ANLP 2021.
2

3
Intern
M3, Inc.

September 2019 - October 2019, Tokyo, Japan

M3 provides a multitude of Internet services for physicians and other healthcare professionals.

Responsibilities:
  • Improve a medical paper recommendation system by using NLP technologies and Elasticsearch.

Part-time Job
rakumo, Inc.

July 2017 - February 2020, Tokyo, Japan

rakumo provides G Suit applied office tools.

Responsibilities:
  • Build an email classification system which facilitates work efficiency of customer support.
  • Build a retrieval system for searching past similar cases from an email sent to customer support.
4

5
Student
Shinshu University

April 2015 - March 2019, Nagano, Japan

Shinshu University is a Japanese national university located in Nagano Prefecture.

Responsibilities:

Intern
Wantedly, Inc.

August 2017 - September 2017, Tokyo, Japan

Wantedly provides social networking services for business.

Responsibilities:
  • Improve OCR performance on a business card management application.
6

Projects

AllenNLP入門
Author January 2020 - August 2020

A book for beginners in AllenNLP which is a natural language processing framework.

Star
colt
Developer March 2020 - Present

A configuration utility for Python objects inspired by AllenNLP.

Star
logexp
Developer January 2020 - Present

A simple experiment manager for machine learning.

Star
xallennlp
Developer June 2020 - Present

xallennlp provides some additional functions for AllenNLP such as MLflow support.

Star
pdpcli
Developer February 2021 - Present

A command line tool to build a pandas pipeline from a configuration file.

Star
slide-cloud
Developer May 2019 - June 2019

Online slide show editor which enables you to write your slides in Markdown on a browser.

Star
bookshelf
Developer August 2020 - Present

Ebook management system on S3 compatible storage which provides OPDS feed.

Star
ラベルの不均衡を考慮したEnd-to-End情報抽出モデルの学習 [ANLP 2021]
Author August 2020 - January 2021

A paper about traing method for end-to-end information extraction model with imbalanced data learning technique.

Details
minato
Developer May 2021 - Present

Python library for accessing and caching online files easily.

Star
単語埋め込みを利用した商品に対するキーワードの予測
Author August 2021 - January 2022

We propose a neural title-keyword matching method for EC services which is also useful in unsupervised way. This paper won a prize at NLP2022.

Details

Recent Posts

Card image cap
WebやS3上のファイルにアクセスするためのPythonライブラリ

はじめに Web上やAWS S3上のファイルへのアクセスを簡単にするために Minato というPythonライブラリの開発を行っています. Minatoの機能は大きく以下の3つです: オンラインファイルに対する読み書き オンラインファイルのローカルへのキャッシュ ローカルのキャッシュファイルの管理 この記事ではこれらの機能と Minato の基本的な使い方について紹介します. ファイルの読み書き Minatoを使うことで,通常のPythonでのローカルファイルへの読み書きと同じような手順でオンラインのファイルにアクセスすることができます. 次の例からわかるように,MinatoはURLのスキームから適切なファイルシステムを自動的に選択して使用します. import minato # Web上のファイルの読み込み with minato.open("http://example.com/path/to/file", "r") as f: content = f.read() # S3上のファイルへの書き込み with minato.open("s3://your_bucket/path/to/file", "w") as f: f.write("Create a new file on AWS S3!") # ローカルのファイルへの書き込み with minato.open("/path/to/local/file", "w") as f: f.write("Create a new file on a local storage!") キャッシュの利用 Web上の大きなデータを読む場合に,ローカルにキャッシュを置くことで何度もファイルをダウンロードすることなくアクセスすることができます. Minatoでは cached_path というメソッドを使うことでURLからローカルのキャッシュへのパスを取得できます. キャッシュが存在していない場合は指定したURLのファイルが自動的にダウンロードされます. import minato local_path = minato.cached_path("https://example.com/path/to/large/file") with open(local_path) as fp: content = fp.

Card image cap
電子書籍をオンライン管理する

はじめに 最近,書籍を電子版で購入することが増えたことで電子書籍の管理が煩雑になってきました. 多くの場合,電子書籍を購入すると販売サイトから書籍データをダウンロードできて, それらを自分の端末に入れて読むことになります.また,一つの書籍に対してPDFやEPUB など複数のフォーマットが用意されていることも多いです.本を購入するたびに増えていく ファイルを効率よく管理するために,先日Bookshelf という電子書籍管理のためのWEBアプリをつくりました. これまでは電子書籍の管理のためにDropboxやGoogle Driveなどのクラウドストレージに ファイルを突っ込んでいたのですが,ファイルへのアクセスが面倒であったり, ストレージの容量を気にする必要があったりと不満を感じていました. Bookshelfにはこうした問題を解決するための 機能を実装しました. Bookshelf Bookshelfは電子書籍を管理するための WEBアプリであり,フロントエンドはVue.js + TypeScript, バックエンドはGo言語で 実装されています.主な特徴は以下のとおりです: 書籍情報の登録 OPDSフィードの配信 複数フォーマットの登録 S3互換ストレージへの保存 シングルバイナリ 書籍のメタ情報はPostgresかSQLite3に,書籍ファイルはローカルのファイルシステムか S3互換のオブジェクトストレージに保存することができます.また,本やファイルの 追加や削除はすべてブラウザから行えます. 書籍情報の登録 Bookshelfでは書籍データを保存する際に 著者や出版社,表紙などの書籍情報を合わせて登録します.書籍情報を登録する際は ISBNを入力すると自動的に他のフィールドを補完するため,効率よく書籍を登録する ことができます.登録された書籍情報は書籍へのアクセスの利便性を上げるだけでなく, 後述するOPDSフィードの配信にも使われます. ISBNによる補完にはopenBDという検索APIを利用しています. 主要な書籍の情報はだいたい揃っていて,APIの仕様も簡潔なため非常に使いやすいです. OPDSフィードの配信 電子書籍を配信するための規格としてOPDSというのがあるようです. あまり流行ってはいなさそうですが,日本ではオライリー・ジャパンや 青空文庫などでOPDSによるカタログの配信が行われて います.Bookshelfは登録した書籍をOPDSフォーマットで配信することができます. OPDSフィードへのリンクはヘッダー右側のアイコンから取得できます. OPDSに対応したリーダーであれば,このアプリに登録した書籍をPCやスマートフォン から読むことができます.例えばFoliate というソフトウェアを使うと以下のように書籍の一覧を眺めたりファイルを ダウンロードしたりできます.このOPDS配信機能とOPDS対応リーダーのおかげで本への アクセスやローカルでの管理がかなり便利になりました. 複数フォーマットの登録 Bookshelfでは一つの書籍についてPDFやEPUBなど複数のフォーマットのファイルを 登録できます.ブラウザからは以下のように登録したファイルがアイコンとして表示 され,クリックするとファイルをダウンロードすることができます. またOPDSでも複数のフォーマットを配信しているため,例えばFoliateからは以下の ようにプルダウンメニューからフォーマットを選択してダウンロードすることができます. S3互換ストレージへの保存 書籍ファイルの保存先をS3互換のオブジェクトストレージに設定することができます. S3互換のストレージには本家のAWS S3やオープンソースのMinIO などがありますが,私はwasabiを使っています.wasabiは AWS S3に比べて非常にコスパがよく,API呼び出しや転送に対して課金されないため重宝 しています.(1TB未満なら$6/mo程度です.) これで容量をほとんど気にすることなく 電子書籍を管理できます! シングルバイナリ Bookshelfはシングルバイナリで動作するアプリケーションです.今回,フロントエンド をバイナリファイルに含めるためにgo-bindata-assetfs を使ってみました.これを使うと任意のファイルをGoのコード中にバイナリとして埋め込む ことができます. 埋め込んだファイルは以下のようにhttp.

Achievements

委員特別賞 @ NLP2022

ISUCON 8 Final Contest

ACM-ICPC Asia Yokohama Regional Contest 2018