ブックマーク / qiita.com/Hironsan (12)

  • 固有表現認識を使って文書を黒塗りする - Qiita

    固有表現認識で認識した固有表現を黒塗りすることで、匿名化っぽいことができると考えられます。というのも、機密文書で黒塗りされている部分は機密に関係している人名や組織名などが多いと考えられるからです。上文の固有表現部分を黒塗りすると以下のようになります。 今回は固有表現を認識するためにディープラーニングを用いたモデルを構築します。具体的にはLampleらが提案したモデルを構築します。このモデルでは、単語とその単語を構成する文字を入力することで、固有表現の認識を行います。言語固有の特徴を定義する必要性もなく、ディープな固有表現認識のベースラインとしてよく使われているモデルです。 Lampleらのモデルは主に文字用BiLSTM、単語用BiLSTM、およびCRFを用いて構築されています。まず単語を構成する文字をBiLSTMに入力して、文字から単語表現を獲得します。それを単語分散表現と連結して、単語用

    固有表現認識を使って文書を黒塗りする - Qiita
  • 自然言語処理における前処理の種類とその威力 - Qiita

    自然言語処理に前処理は不可欠です。テキストは文字の羅列であり構造化されていないため、そのままでは処理するのが難しいです。特にWebテキストの中には HTMLタグ や JavaScript のコードといったノイズが含まれています。このようなノイズは前処理して取り除かなければ期待する結果は得られないでしょう。 出典: Deep learning for computational biology 記事では自然言語処理における前処理の種類とその威力について説明します。説明順序としては、はじめに前処理の種類を説明します。各前処理については、1.どんな処理なのか、2.なぜその処理をするのか、3.実装方法(なるべく) という観点から説明します。種類について説明した後、前処理の威力を測るために前処理をした場合としなかった場合での文書分類の結果を比較します。 前処理の種類と実装 この節では以下に示す5つ

    自然言語処理における前処理の種類とその威力 - Qiita
  • テンプレートを使って爆速で機械学習プロジェクトを作成する - Qiita

    あなたは機械学習プロジェクトを毎回違う構成で作っていませんか? 何をどこに配置するかで悩んで時間がかかっていませんか? そんな方に朗報です。 機械学習プロジェクトはコマンド一発で作れます。 以下のようなプロジェクトを数秒で作れます。 ディレクトリ構造 ├── LICENSE ├── Makefile <- Makefile with commands like `make data` or `make train` ├── README.md <- The top-level README for developers using this project. ├── data │ ├── external <- Data from third party sources. │ ├── interim <- Intermediate data that has been transfor

    テンプレートを使って爆速で機械学習プロジェクトを作成する - Qiita
  • なぜ自然言語処理にとって単語の分散表現は重要なのか? - Qiita

    なぜ自然言語処理にとって単語の分散表現は重要なのでしょうか? この記事をご覧になっている方は Word2vec(Mikolov et al., 2013) についてご存知かもしれません。Word2vec ではまるで単語の意味を捉えられているかのような演算を行うことができます。例えば King から Man を引き Woman を足すと Queen が得られる(King - Man + Woman = Queen)というのは有名な例です。 from https://www.tensorflow.org/get_started/embedding_viz 実はその内部では、単語を分散表現(あるいは埋め込み表現)と呼ばれる200次元ほどのベクトルで表現してベクトルの足し引きを行っています。この200次元ほどのベクトル内部に各単語の特徴が格納されていると考えられています。そのため、ベクトルの足し引

    なぜ自然言語処理にとって単語の分散表現は重要なのか? - Qiita
  • Pythonistaなら知っておきたい計算量のはなし - Qiita

    最近久しぶりにアルゴリズムイントロダクションを読んでいるのですが、ふと「Python(CPython)のデータ構造に関する各操作の計算量ってどれくらいなのかな?」と気になったので調べてみました。以下のページを参考にしています: Python Time Complexity 以下では $n$ や $k$ といった記号を使います。ここで $n$ はコンテナ内の要素数、$k$ はパラメータ内の要素数かパラメータの値とします。では見ていきましょう。 2021/05/02 コメントでのご指摘を記事に反映しました。ありがとうございます。 リスト まずはリストです。Pythonではリストは内部的にはC言語の配列として表しているようです。そのため、先頭要素の追加や削除を行うとそれ以降の要素をすべて移動する必要があるため大きなコストがかかります。なので先頭に要素を追加したり削除する必要がある場合は、代わりに

    Pythonistaなら知っておきたい計算量のはなし - Qiita
  • 自然言語処理における畳み込みニューラルネットワークを用いたモデル - Qiita

    はじめに 最近、畳み込みニューラルネットワーク(CNN)を用いた自然言語処理が注目を集めています。CNNはRNNと比べて並列化しやすく、またGPUを使うことで畳み込み演算を高速に行えるので、処理速度が圧倒的に速いという利点があります。 この記事は、自然言語処理における畳み込みニューラルネットワークを用いたモデルをまとめたものです。CNNを用いた自然言語処理の研究の進歩を俯瞰するのに役立てば幸いです。 文の分類(評判分析・トピック分類・質問タイプ分類) Convolutional Neural Networks for Sentence Classification(2014/08) 評判分析や質問タイプの分類などの文分類を行うCNNを提案している論文。 具体的には文を単語ベクトルの列として表し、それに対してCNNを用いて特徴抽出・分類を行っている。論文では事前学習済みの単語ベクトル(Goo

    自然言語処理における畳み込みニューラルネットワークを用いたモデル - Qiita
  • いますぐ使える単語埋め込みベクトルのリスト - Qiita

    はじめに 単語埋め込みとは、単語を低次元(と言っても200次元程度はある)の実数ベクトルで表現する技術のことです。近い意味の単語を近いベクトルに対応させることができるとともに、ベクトルの足し引きで意味のある結果(例えば king - man + women = queen)が得られるのが特徴です。 単語埋め込みベクトルは品詞タグ付け、情報検索、質問応答などの様々な自然言語処理アプリケーションに使われる重要な技術です。とはいえ、実際に用意するのはなかなか骨の折れる作業です。大規模なデータをダウンロードし、前処理をかけ、長い時間をかけて学習させ、結果を見てパラメータチューニングを行う・・・。 そのため、単に使いたいだけなら学習済みのベクトルを使うのが楽です。というわけで、そんな単語埋め込みベクトルの中から今すぐ使えるものをピックアップしてみました。 埋め込みベクトルの情報は以下のリポジトリにま

    いますぐ使える単語埋め込みベクトルのリスト - Qiita
  • まだ機械学習の論文を追うのに消耗してるの?それBotで解決したよ - Qiita

    まだ機械学習の論文を追うのに消耗してるの? はい、消耗しているんです(涙) 機械学習の分野って当に進歩が早いですよね? 「最新の手法」が週間で変わるぐらいその変化は激しいものです。 そんな世界にキャッチアップしていくためには、一人の力だけでやっている場合ではない!ということで、私や私の先輩 icoxfog417 を含めて何人か共同で機械学習系論文の読み会を開催しています。 今回は、そこで読んだ論文の内容をつぶやいてくれる Twitter Bot をつくってみました。この Bot は読んだ論文についての一言まとめをつぶやいてくれます。一言まとめにより論文の内容を日語で素早く把握できるようになります。以下のような感じです。 リサーチしている論文は、以下の GitHub リポジトリ( arXivTimes )で管理しています。こちらを更新するたびに Twitter でつぶやく仕組みになってい

    まだ機械学習の論文を追うのに消耗してるの?それBotで解決したよ - Qiita
  • 絵で理解するWord2vecの仕組み - Qiita

    皆さん、Word2vec の仕組みはご存知ですか? Word2vec は gensim や TensorFlow で簡単に試せるので使ったことのある方は多いと思います。しかし、仕組みまで理解している方はそう多くないのではないでしょうか。そもそも家の論文でも内部の詳細については詳しく解説しておらず、解説論文が書かれているくらいです。 記事では Word2vec のモデルの一つである Skip-Gram について絵を用いて説明し、概要を理解することを目指します。まずは Skip-Gram がどのようなモデルなのかについて説明します。 ※ 対象読者はニューラルネットワークの基礎を理解しているものとします。 どのようなモデルなのか? Skip-Gram はニューラルネットワークのモデルの一つです。Skip-Gram は2層のニューラルネットワークであり隠れ層は一つだけです。隣接する層のユニット

    絵で理解するWord2vecの仕組み - Qiita
  • 学年ビリのアホが1年半でTOEICスコアを300点から840点に上げた英語勉強法の話 - Qiita

    序盤から中盤にかけての中心は音読、英作文、文法であった。 特に英作文と文法は非常に重視しており、一番時間をかけた。 中盤から終盤にかけては精読、多読、ボキャビルを行った。 文法を叩き込んだ後に精読と多読を行ったのは誤読せずに済んだので良かったと思う。 学習時間の内訳をグラフで示すと以下のようになります。 英作文と文法で約60%を占めています。英文法を徹底的に体に叩き込みました。 逆に精読、多読、発音が占める割合は低くなっています。特に発音が少ないのは後で後悔することになります。 学習の詳細 ここでは各トレーニングに使った教材について簡単なコメントとともに書いておきます。 音読 音読の一冊目はコレをやりました。英語上達完全マップの作者が書いたなので、音読のトレーニングがしやすいように構成されています。そのため、様々な人が書いていますが音読の一冊目にはこれをやっておけば間違いはないと思います

    学年ビリのアホが1年半でTOEICスコアを300点から840点に上げた英語勉強法の話 - Qiita
  • 機械学習を使って作る対話システム - Qiita

    このような対話を通じて、レストランの検索に必要な情報をユーザから取得し、レストラン検索を行います。 今回、レストラン検索にはHotPepperグルメサーチAPIを利用させていただきました。ありがとうございます。 システムアーキテクチャ 対話システムは複数のモジュールから構成されています。今回は、各モジュールは独立に動作させず、前段階のモジュールの処理が終わった段階で駆動されるようにしています。 最終的なシステムアーキテクチャは以下の図のようになりました。 今回のアーキテクチャに沿って処理の流れを説明すると以下のようになります。 ユーザがテキストを入力すると、入力したテキストは言語理解部に入力されます。 言語理解部では入力されたテキストを解析して、対話行為と呼ばれる抽象的な意味表現に変換します。 言語理解部から出力された対話行為は、対話管理部に入力されます。対話管理部では入力された対話行為を

    機械学習を使って作る対話システム - Qiita
  • 【チュートリアル】機械学習を使って30分で固有表現抽出器を作る - Qiita

    はじめに 固有表現抽出は、テキストに出現する人名や地名などの固有名詞や、日付や時間などの数値表現を抽出する技術です。固有表現抽出は、質問応答システム、対話システム、情報抽出といった自然言語処理を用いた応用アプリケーションの要素技術としても使われています。 今回は機械学習技術を使って固有表現抽出器を作ってみます。 ※注意事項 理論的な話は一切出てきません。理論を知りたい方は他を当たってください。 対象読者 固有表現抽出を少しは知っている方 固有表現抽出器を作ってみたい方 Pythonコードを読める方 固有表現抽出とは? ここでは、固有表現抽出の概要と方法について説明します。 概要 固有表現抽出は、テキストに出現する人名や地名などの固有名詞や、日付や時間などの数値表現を抽出する技術です。具体例を見てみましょう。以下の文から固有表現を抽出してみます。 上記の文に含まれる固有表現を抽出すると人名と

    【チュートリアル】機械学習を使って30分で固有表現抽出器を作る - Qiita
  • 1