Ahogrammer

Deep Dive Into NLP, ML and Cloud

実践!固有表現認識 ~Flairを使って最先端の固有表現認識を体験しよう~

自然言語処理の分野で昔から研究され、実際に使われている技術として固有表現認識があります。固有表現認識は、テキスト中で固有表現が出現する位置を特定し、人名や地名などのラベルを付与するタスクです。情報抽出や質問応答、対話システムなどへの幅広い…

単語分散表現の履歴を使って固有表現認識の性能を向上させる

NAACL 2019より以下の論文。あのAkbikの手法がパワーアップして帰ってきた! Pooled Contextualized Embeddings for Named Entity Recognition この論文では、固有表現認識を行う際に、今までの認識に使った単語の分散表現を記憶しておき、その情報を使って…

TensorFlow Datasetsを使ってテキストの分かち書きとID化をする

自然言語処理で欠かせない前処理としてテキストの分かち書きとID化があります。分かち書きはテキストを分割するプロセスであり、文字や単語、サブワードといった単位でテキストを分割します。これらの分割後の要素はトークンと呼ばれます。一方、ID化はトー…

誤ったラベル付けが含まれるデータセットで学習させる固有表現認識手法

EMNLP 2019より以下の論文を紹介。モデルに依存しない手法なのがとても良い。 CrossWeigh: Training Named Entity Tagger from Imperfect Annotations この論文では、誤ったラベル付けが含まれるデータセットから固有表現認識のモデルを学習させる方法を提案…

グローバルなコンテキストを使って固有表現認識の性能を改善する

ACL 2019より以下の論文を紹介。 GCDT: A Global Context Enhanced Deep Transition Architecture for Sequence Labeling この論文では、文レベルのグローバルな文脈表現を利用した系列ラベリングのモデルを提案している。従来、品詞タグ付や固有表現認識、…

近傍検索によって解く固有表現認識と品詞タグ付け

ACL 2019より以下の論文を紹介。こういう系列ラベリングのやり方もあるか、と思った一本。 Label-Agnostic Sequence Labeling by Copying Nearest Neighbors この論文では、入力文中のトークンをラベルの付いたデータベース中のトークンに対して近傍検索を行…

英語からの転移学習で日本語固有表現認識の性能を向上させる

NAACL 2019より以下の論文を紹介。 Cross-lingual Transfer Learning for Japanese Named Entity Recognition この論文では、英語の固有表現認識のデータセットを使って学習させたモデルを転移学習させることで、日本語の固有表現認識の性能向上を行う手法を…

ラベルの欠けているデータセットから固有表現認識のモデルを学習させる

NAACL 2019より以下の論文を紹介。 Better Modeling of Incomplete Annotations for Named Entity Recognition この論文は不完全なアノテーションの付いているデータから固有表現認識を行う論文。背景として、我々が固有表現認識のモデルを学習させる際は学…

アノテーションスキーマが異なる複数のデータセットを組み合わせて固有表現認識

ACL 2019より以下の論文を紹介。少し長め。 A Joint Named-Entity Recognizer for Heterogeneous Tag-sets Using a Tag Hierarchy この論文は、異なるタグの付いたデータセットを組み合わせて固有表現認識を行う話。手法としては、異なるデータセットに出現…

言語が混在したソーシャルメディアの固有表現認識

ACL 2019より以下の論文を紹介。今後、意外と必要になるかもしれないので取り上げた。 Corpus Creation and Analysis for Named Entity Recognition in Telugu-English Code-Mixed Social Media Data この論文では、テルグ語と英語が混じったソーシャルメデ…

固有表現辞書を使って固有表現認識の性能を向上させる

ACL 2019より以下の論文を紹介。 Towards Improving Neural Named Entity Recognition with Gazetteers この論文は、固有表現辞書を使って固有表現認識の性能を向上させる手法を提案した論文。手法としては、BiLSTMの最終層にHybrid Semi-Markov CRFs(HSCRFs…

低リソースかつノイジーなテキストに対する固有表現認識

ACL 2019より以下の論文を紹介。 Towards Robust Named Entity Recognition for Historic German この論文は、昔のドイツ語(1700年〜1900年くらい)に対する固有表現認識を行った論文。「昔のドイツ語の固有表現認識になんか興味ねーよ」と思うかもしれないが…

多言語BERTの多言語転移性能はどのくらいなのか?固有表現認識と品詞タグ付けで示してみた。

ってことで、ACL 2019より以下の論文を紹介。著者のサイトにスライドが公開されていたのでそちらも載せておく。 【論文】How Multilingual is Multilingual BERT? 【スライド】How Multilingual is Multilingual BERT? 多言語BERTは言語間の転移で優秀な性能…

多言語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年に何をしていたか…