Ahogrammer

Deep Dive Into NLP, ML and Cloud

2019-01-01から1年間の記事一覧

多言語BERTを言語ごとにチューニングして固有表現認識の性能を向上させる

ACL 2019より以下の論文を紹介。 Tuning Multilingual Transformers for Language-Specific Named Entity Recognition この論文は、ロシア語、チェコ語、ブルガリア語、ポーランド語に対する固有表現認識をBERTを使って解いた論文。Googleの公開している多言…

入れ子になった固有表現認識のデータセット

ACL 2019より以下の論文を紹介。 NNE: A Dataset for Nested Named Entity Recognition in English Newswire この論文は、入れ子になった固有表現認識のデータセットを提案した論文。現在、一般的によく使われている固有表現認識のデータセットがフラットな…

辞書と生テキストから固有表現認識のモデルを学習させる

書いている本も山場を超えたので、ACL 2019の論文をパラパラと見ていたところ、以下の論文を発見。 Distantly Supervised Named Entity Recognition using Positive-Unlabeled Learning この論文がどういう論文なのかというと、辞書と生テキストだけを使って…

バイオ医療分野と固有表現認識

最近、職場の同僚が「医療/製薬分野に自然言語処理を使えないか」というような話をしていた。私自身はその分野にそれほど関心が高かったわけではないが、固有表現認識系の論文で医療/化学ドメインに対する取り組みが行われているのは今までに目にしていた。…

入門 AWS Step Functions

最近は仕事の一つとして、機械学習用のワークフローを作成しています。ワークフローを作成するサービスやソフトウェアはいくつかありますが、それら中でもAWS Step Functionsを使おうと考えています。今回の記事は、AWS Step Functionsについて調べたことを…

文字ベース固有表現認識の手法たち

固有表現認識(NER: Named Entity Recognition)とは、テキストに出現する人名や地名などの固有名詞や、日付や時間などの数値表現を認識する技術です。NERはエンティティリンキングや関係抽出、イベント抽出、共参照解決といった自然言語処理タスクの要素技…

Object2vecの新機能を使って文の分散表現を計算する

前回の記事では、日本語文の分散表現を計算するためのデータセットを作成した。 hironsan.hatenablog.com 今回は、先日、SageMakerのObject2vecに追加された機能を使って文の分散表現を計算する。追加された機能には、ネガティブサンプリングの自動化、重み…

文の分散表現を計算するためのデータセットを作って公開する

先日、SageMakerのObject2vecに新機能が追加された。機能としては、ネガティブサンプリングの自動化、重み共有、学習の高速化といった機能が追加されており、以下のNotebookから試すことができる。このNotebookでは英文の分散表現の計算、モデルのデプロイ、…

Jupyter NotebookがGitHub上で表示されない時にすること

機械学習に携わる人であればJupyter Notebookは頻繁に使うツールであり、共有するときにはGitHubを使うのが一般的だろう。GitHubにはブラウザ上でNotebookをレンダリングする機能があり、地味に便利なのだが、ときたまレンダリングされないNotebookが存在す…

今日からはじめるレコメンデーション -探索と利用のジレンマとベイジアンアプローチ-

前回の記事では平均評価による推薦の問題点とその解決策について紹介しました。推薦の際に確信度が考慮されない問題点を信頼区間で、評価数が0の場合にスコアが不定になる問題点をスムージングによって解決する方法について紹介しました。 hironsan.hatenabl…

Kerasで固有表現認識のf1スコアを計算する

一般に固有表現認識では、学習済みモデルの性能を評価するためにf1が使用されます。その際、評価はトークンごとではなくエンティティごとに行われるのが特徴となっています。 f1スコアを評価する関数は、多くの機械学習フレームワークに実装されています。し…

Django Rest Frameworkでソーシャル認証

Djangoには、組み込みのユーザ認証の仕組みがありますが、GitHubやTwitter、Facebookなどのサービスを介したソーシャル認証はサポートされていません。しかし、幸いなことに、サードパーティー製のパッケージを使って簡単に実装することができます。 本記事…

Djangoにおけるアクセス制御の話

Djangoでアプリケーションを作っているとアクセス制御をしたくなることがあります。たとえば、会員サイトではプレミアムユーザと一般ユーザによってアクセスできる情報に差を付けたいことがあるでしょう。こういった機能は、少し規模の大きなサイトではよく…

今日からはじめるレコメンデーション -平均評価による推薦の問題点と対策-

前回の記事では人気度と新規性、またそれらをハイブリッドした手法による推薦の方法について紹介しました。そこでは、人気度と新規性に基づく手法の問題点とその解決方法について説明しました。 hironsan.hatenablog.com 今回は、平均評価に基づく推薦の問題…

今日からはじめるレコメンデーション -Hacker Newsに学ぶスコア関数の設計-

レコメンデーションといえば、現在最も多く使われている技術の一つと言えるでしょう。その応用は数多く存在し、身近なところで言えば、Amazonによる関連商品の推薦やNetflixによる映画の推薦などに使われており、私たちの意思決定を支援しています。 一口に…

日本語 Sentiment Analyzer を作ってパッケージ化した話

Sentiment Analysisと言えば自然言語処理ではよく知られたタスクで、典型的にはテキストをポジティブ/ネガティブの2クラスに分類するものだ。 その使い道としては、Twitter等のSNSから自社製品についての投稿を収集して評価や緊急度によって分類し、問題に対…

2018年のふりかえりと2019年にしたいこと

あけましておめでとうございます。 今日までお正月休みで明日から会社に復帰します。三週間ほど家にこもってゲームばかりしていて頭もだいぶボケてきているので、出社前のリハビリがてら2018年のふりかえりをしたいと思います。まずは2018年に何をしていたか…