タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

*algorithmと*programとNLPに関するsh19910711のブックマーク (38)

  • Word2Boxの実装を読み解く - Qiita

    はじめに 近年、単語表現を点で表すのではなく、箱のような幅を持つような表現で埋め込む手法が流行ってきています。そこで、私の研究でもこの分散表現を使ってみたいと思い、 Word2Box: Capturing Set-Theoretic Semantics of Words using Box Embeddings の論文を読んでみましたが、内容を理解するのが困難でした。そこで、Github上のソースコードからなんとかモデルの内容について理解しようと試みてみました。理解が不十分なところが多々ありますので、ご教示いただけると幸いです。 提案手法 Box Embedding とは まず、Box EmbeddingやWord2Boxについて簡単に説明します。 Box Embeddingはその名の通り、Box状に埋め込みます。 例えば、 "bank" という英単語を2次元で埋め込むことを考えます。Bo

    Word2Boxの実装を読み解く - Qiita
    sh19910711
    sh19910711 2024/09/07
    "Word2Box: 周辺語から中心語を予測するような学習 / 正例と周辺語との距離は近づけ + 負例と周辺語との距離は遠ざける / torchtext.data.Field: 自然言語処理のあらゆる前処理をサポート" doi:10.18653/v1/2022.acl-long.161 ACL'22
  • [R] トピックモデル(LDA)を用いた大量文書の教師なし分類 - Qiita

    #はじめに テキストマイニングの手法、トピックモデルを用いて文書の自動分類に挑戦します。 理論的な部分はこちらの。 先人の拵えた偉大なパッケージ群を活用させてもらい、Rでの実装部分を中心に書いてみたいと思います。 自分の振り返りためにも、困ったポイント、未解決ポイント含めて書いてるので、かなり回りくどいかもしれませんがご了承ください。 #トピックモデルとは テキストマイニングではネット上のブログやニュースなど、多量の文書を取り扱うことが多いですが、トピックモデルを用いることによって、そういった文書を教師なし学習で分類することができます。 ざっくりとしたイメージですが、「文書中に出現する単語の出現確率を推定するモデル」ということ。スポーツなら「サッカー」「野球」「バレーボール」のような単語が出現しやすく、料理なら「レシピ」「献立」「まな板」みたいな単語がきっと多く出てくるのはイメージがわき

    [R] トピックモデル(LDA)を用いた大量文書の教師なし分類 - Qiita
    sh19910711
    sh19910711 2024/04/12
    "tmパッケージ: VCorpus(DirSource(dir="xxx")))で読み込むことで、全txtデータをコーパスとして取り込むことができます / DTM: tidytext::cast_dtm()関数で、頻度表から文書単語行列(Document Term Matrix)に変換" 2019
  • (Part 1) tensorflow2でhuggingfaceのtransformersを使ってBERTを文書分類モデルに転移学習する - メモ帳

    現在、NLPの分野でも転移学習やfine-tuningで高い精度がでる時代になっています。 おそらく最も名高いであろうBERTをはじめとして、競ってモデルが開発されています。 BERTは公式のtensorflow実装は公開されてありますが、画像分野の転移学習モデルに比べると不便さが際立ちます。 BERTに限らず、公式のtensorflow実装は難解で、tf.kerasの学習済みモデルに関してもほとんど画像のモデルしかないです。 ただし、pytorch用のライブラリにpytorch-transformersという有用なものがありまして、 BERT, GPT-2, RoBERTa, DistilBert, XLNetなどの多言語学習済みモデルが利用可能で、カスタマイズもしやすいということで有名でした。 このライブラリが名前をかえてtensorflow2に対応してくれました。 Transform

    (Part 1) tensorflow2でhuggingfaceのtransformersを使ってBERTを文書分類モデルに転移学習する - メモ帳
    sh19910711
    sh19910711 2024/04/11
    "公式のtensorflow実装: 難解 + tf.kerasの学習済みモデルに関してもほとんど画像のモデルしかない / pytorch-transformers: 名前をかえてtensorflow2に対応 + BERT, GPT-2, RoBERTa, DistilBert, XLNetなどの多言語学習済みモデルが利用可能" 2019
  • spaCyを用いて日本語の固有表現抽出(NER)モデルを学習する - Sansan Tech Blog

    はじめに 最近、固有表現抽出(Named Entity Recognition: NER)の学習をspaCyを用いて行う機会があったため、そのやり方について簡単にまとめたいと思います。 Ref spacy.io Version python: 3.11.3 spaCy: 3.6.0 使用したNotebook github.com 全体の流れ 学習データの用意 spaCyのconfigファイルの用意 学習 評価 推論 学習データの用意 今回は、ストックマーク株式会社が公開しているWikipediaを用いた日語の固有表現抽出データセットを利用します。 まずはデータセットを読み込みます。 with open("../ner-wikipedia-dataset/ner.json") as f: stockmark_data = json.load(f) 次にデータセットを、train, dev,

    spaCyを用いて日本語の固有表現抽出(NER)モデルを学習する - Sansan Tech Blog
    sh19910711
    sh19910711 2024/04/04
    "spaCy: configファイルに全ての設定を記載し、spacy trainコマンドにて学習 / 基本的な設定を行ったconfigファイルを、spaCyのサイトから取得 / 出力されたモデルはmodel-lastとmodel-bestがあり / spacy.displacy.render(..., jupyter=True)" 2023
  • 名詞・形容詞ペアの抽出によるレビュー分析 - Qiita

    概要 冒頭の例のように、レビューテキストから名詞と形容詞のペアを抽出 してみます。 これを複数のレビューで集計することで、レビュー文を1つずつ読まずとも、傾向としてどんな部分がどういった評価を受けているのか が見えてきそうですよね。 (例えば、ラーメン店であれば、スープ、麺、値段それぞれがどんな評価が多いのか、とか) 基的には、以下のような流れで実装しています。 GiNZAで形態素解析+係り受け解析 名詞・形容詞のペアを抽出 特定の係り受け関係であれば採用 やや苦慮した部分は、以下の2点です。 複数の形態素からなる形容詞 の扱い(例:高価な=高価+な) GiNZAの係り受け解析結果(UD: Universal Dependency) の扱い 両者とも、私の知識が十分でなく、今回の扱いが適切でない可能性も多分にあります。その点はご了承ください(お気づきの点はコメントいただけるととても嬉しい

    名詞・形容詞ペアの抽出によるレビュー分析 - Qiita
    sh19910711
    sh19910711 2024/03/26
    "Universal Dependencies: 多言語で一貫した構文構造とタグセットを定義 + 従来は言語毎で異なる構文表現を用いていたが、それを統一的に扱っていこうという取り組み / 「静かな」は形態素解析の結果「静か」「な」に分解" 2023
  • RでKerasを使う(短歌手習い編) - Qiita

    概要 『新しき 年の始めの うれしきは 古き人どち あへるなりけり』 以前に{tensorflow}のPythonライブラリをimportする関数を用いることで、gensimを活用できるという記事を書きました。 これにより、R/RStudio上ですべてを管理したい/されたいRおじさん(重度なRユーザーを指す。女性でも「おじさん」と呼称するので、淑女の方々はご配慮いただきたい)のできる幅が広がったと言えます。 今回はさらにTensorflowとTheanoのラッパーであるKerasというライブラリを用いてモデルを構築し、新年の挨拶によさそうな短歌の生成を試みました。具体的には「上の句を入力することで下の句を生成する」というタスクを設定しています。 なお、{tensorflow}自体の設定や使い方などは{tensorflow}でデータ分析のHello Worldであるirisデータの分類を行っ

    RでKerasを使う(短歌手習い編) - Qiita
    sh19910711
    sh19910711 2024/03/04
    "R上からKerasを用いたモデルを構築し、短歌のデータを適用して下の句を生成することに挑戦 / 上の句と下の句で対応づけるようにしているので、画像でよく採用されているCNNによるアプローチも使えるかも" 2017
  • llama.cpp で LLM を AWS Lambda で動かしてみる

    こんにちは、初めましての方は初めまして。株式会社 Fusic で機械学習エンジニアをしている瓦です。「2024 年は日記をつけてみよう」と思って書き始め、一日坊主で終わってしまった一ヶ月前の日記を眺めながら、日記を付けることの難しさに絶望しています。 この記事では llama.cpp を使って、AWS Lambda で LLM を動かしてみます。LLM を使おうとすると、大きなメモリの載っている GPU を用意して、という流れに大体なりますが、もちろん誰でも強い GPU が使える環境を得られるとは限りません。また GPU を使おうとするとそれなりの金額を覚悟しないといけないことも多いです。そこで CPU でも動く環境を作って、サーバレスな環境で動くかを試してみようと思います。 準備 モデルの量子化 今回は Stablity.ai が公開している Japanese StableLM-3B-4

    llama.cpp で LLM を AWS Lambda で動かしてみる
    sh19910711
    sh19910711 2024/02/28
    "Lambda で LLM / 「2024 年は日記をつけてみよう」と思って書き始め、一日坊主で終わってしまった / モデルの量子化 (llama.cpp): README の Prepare and Quantize に基本的に従えばよい / llama-cpp-python を使って量子化したモデルを読み込み"
  • PyTorchを使ってCNNで文章分類を実装してみた - Qiita

    はじめに そういえば自然言語を畳み込んだことなかったなぁと思い、いつ必要になるかわからんので、どんなもんなのか雰囲気を確かめるために実装のお勉強をしてみました。 自分みたいに普段は自然言語処理ばかりしていて、CNNに不慣れな人向けに実装重視で解説してみます。 検証するタスクは、livedoorニュースコーパスの文をカテゴリに分類する問題とします。 実装環境はGoogle Colabを使っています。 以下の文献を参考にしました! https://arxiv.org/pdf/1510.03820.pdf CNNで文章分類をしている論文で、今回の実装もこの論文で紹介されているアーキテクチャーを参考にしています。 https://tkengo.github.io/blog/2016/03/11/understanding-convolutional-neural-networks-for-nlp

    PyTorchを使ってCNNで文章分類を実装してみた - Qiita
    sh19910711
    sh19910711 2024/02/28
    arXiv:1510.03820 / "ベクトル方向(行方向)全体に対して、隣接する単語ベクトルをひとまとまりにして畳み込む / 異なる単語分散表現(word2vecとfasttextみたいな)などを使って、複数チャネルとみなす方法もある" / 2021
  • 大規模言語モデル入門 / LLM introduction (SES2023)

    ソフトウェアエンジニアリングシンポジウム2023 (SES 2023)

    大規模言語モデル入門 / LLM introduction (SES2023)
    sh19910711
    sh19910711 2023/09/03
    "phi-1 [Gunasekar+, 2023/06]: GPT-4を活用してフィルタリングした高品質Githubコード + 教科書品質のデータCodeTextBook, CodeExcersizeを利用 / パラメータ数1.3Bにも関わらず、WizardoCoderやGPT-3.5に匹敵する性能を実現"
  • Deep Learningで文章をNERする(AIで暗記を効率化する) - Qiita

    google colab コード 概要 今回はdeep learningを用いたモデルに文章を与えて、その文章の特定のキーワードだけmaskingすることを目指しました。 例えば、多くの人は学生時代や資格の勉強などで文章にペンで緑色を引いて赤下敷きや赤シートで隠すということをやられたかと思います。しかし、それは意外と面倒です。下敷きで隠す前に線を引くだけで疲れてしまうこともあります。 その線で隠すというタスクをdeep learningで自動でやってもらって勉強の能率をあげようという目的で取り組みました。 これを達成する上で一番単純なのは、文章の固有名詞を抽出して全て隠すという方法です。 ただ、これは文章のキーワードが消えすぎてしまいます。一方で多くの文章にはその分野のキーワードだけではなく、色々な分野の固有名詞が含まれます。 機械学習の勉強をする人であれば、文章の機械学習に強く関連したキ

    Deep Learningで文章をNERする(AIで暗記を効率化する) - Qiita
    sh19910711
    sh19910711 2022/10/06
    "学生時代や資格の勉強などで文章にペンで緑色を引いて赤下敷きや赤シートで隠すということをやられたかと思います / その線で隠すというタスクをdeep learningで自動でやってもらって勉強の能率をあげよう"
  • D-Waveマシンで自然言語処理の問題をやってみました - Qiita

    ノートブック D-Wave Leapで簡単に量子アニーリングマシンに問題を解かせるようになったので、実際に使ってみました。ただ解くだけのはさみしいので、いろいろこじつけて実用を考えながら自然言語処理のToy問題を作ってやりました。 内容でいうと、word2vecで単語のグラフを作ってその上でmax cutやminimum vertex coverをD-Waveマシンにやらせました。 アニーリングマシンの原理はややこしいので個々では解説しません。ゲートマシンについてはこちらで基的なことを解説しています。 D-Wave Leapについて D-Waveの量子アニーリングマシンについて解説や学習資料、実際に動かすためのリソースなどをまとめたサービスです。詳細についてはこちらの動画がおすすめです。 D-Wave Leapに登録すると最初はいくぶんかの無料時間をもらえて実際にD-Waveのマシンで遊

    D-Waveマシンで自然言語処理の問題をやってみました - Qiita
    sh19910711
    sh19910711 2022/08/11
    2018 / "word2vecで単語のグラフを作ってその上でmax cutやminimum vertex coverをD-Waveマシンにやらせました / D-Wave Leap: お金で買うとなると今現在(2018年12月)1時間20万円、1分あたり350円ぐらいだそうです"
  • 映画「The Social Network」の脚本をNLTKで解析して遊んでみた - ぬいぐるみライフ?

    ※この記事には映画「The Social Network」のネタバレがそれなりに含まれています.これから映画を観る予定の方は逃げた方が賢明です. 最近ブログで宣言した通り,入門 自然言語処理を読みつつPythonのNLTK(Natural Language ToolKit)を使った自然言語処理について勉強中.入門 自然言語処理はPythonをロクに触ったことがない私でもちゃんと理解しながら読み進められるようになっているのが嬉しい. ところで,少し前に映画「The Social Network (ソーシャル・ネットワーク)」を観て,登場人物の台詞や行動がなかなか面白くて気に入ったのだけど,この脚映画の公式サイトで公開されていることを最近知った.映画の脚となると,特徴的な表現が多く文章数もそれなりにあるので,興味深いコーパスになり得るのではないかと思う. というわけで,NLTK習い立ての

    映画「The Social Network」の脚本をNLTKで解析して遊んでみた - ぬいぐるみライフ?
    sh19910711
    sh19910711 2022/04/04
    2011 / "場面ごとの登場人物の推移を可視化する / 脚本には各登場人物の台詞の前に,発言する人物の名前が大文字で書かれている / いろいろ思い出していたらもう一度映画を観たくなってきた"
  • Jax/Flax × TransformersでBERTのfine-tuningをTPUで行う | 株式会社AI Shift

    こんにちは AIチームの戸田です 以前、BERTをfine-tuningする際のTipsとして混合精度の利用や、Uniform Length Batchingをつかった学習効率化を紹介させていただきましたが、今回はTPUを使った高速化について紹介したいと思います。 Flax TPU対応というと、まずGoogleのTensorflowが思い浮かびますが、今回は同じGoogleのニューラルネット学習用フレームワークのFlaxを使います。 FlaxはTensorflowと比較して簡潔に、かつ柔軟に書くことができると言われており、huggingfaceのtransformersもv4.8.0からFlaxをサポートするようになっています。 JAX/Flax has joined the ranks of PyTorch and TensorFlow in 🤗Transformers! Versio

    Jax/Flax × TransformersでBERTのfine-tuningをTPUで行う | 株式会社AI Shift
    sh19910711
    sh19910711 2022/01/03
    "一方学習曲線を見てみると、Flaxの方が精度が悪いようです / トータルのバッチサイズは両方とも32ですが、TPUの場合、デバイスが8個あるので、デバイスごとのバッチサイズが4になることが原因かと思われます"
  • spaCyを使ってルールベースの記述をシンプルに! - Qiita

    この記事は自然言語処理アドベントカレンダー 2019の12日目です。 昨今自然言語処理界隈ではBERTを始めとする深層学習ベースの手法が注目されています。 一方それらのモデルは計算リソースや推論速度の観点で制約が大きく、プロダクション運用の際は留意すべき事項を多く持ちます。 (googleが検索にBERTを導入というニュースを見た時はとても驚きました) そこで記事では自然言語処理タスクのシンプルかつ運用しやすい実装方法を考えていきます。 実装にはpythonと以降説明するspaCyとGiNZAの2つのライブラリを使います。 環境: ubuntu18.04 python 3.6.8 ライブラリインストールはpipから行います 今回行うタスク 実務で需要が多いと思われる以下の2タスクを取り上げます。 固有表現抽出 フレーズ抽出 ##固有表現抽出とは 固有表現抽出(NER)をWikipedia

    spaCyを使ってルールベースの記述をシンプルに! - Qiita
    sh19910711
    sh19910711 2021/11/10
    "spaCyでは出力の可視化機能が豊富 + Jupyter環境で可視化するには以下のspacy.displacy / 固有表現がPERSON + (任意の文字列) + LOC + (任意の文字列) +「働」が含まれる語のルールを記述"
  • 【日本語モデル付き】2020年に自然言語処理をする人にお勧めしたい文ベクトルモデル - Qiita

    2023/03/20 追記 Studio Ousia様によるLUKEモデルをベースに学習したSentence-LUKEモデルを公開しました。 Sentence-LUKEモデル: https://huggingface.co/sonoisa/sentence-luke-japanese-base-lite 手元の非公開データセットでは、日語Sentence-BERTモデル(バージョン2)と比べて定量的な精度が同等〜0.5pt程度高く、定性的な精度はモデルの方が高い結果でした。 2021/12/14 追記 MultipleNegativesRankingLossを用いて学習した改良版モデルを公開しました。 改良版(バージョン2)のモデル: https://huggingface.co/sonoisa/sentence-bert-base-ja-mean-tokens-v2 手元の非公開デー

    【日本語モデル付き】2020年に自然言語処理をする人にお勧めしたい文ベクトルモデル - Qiita
    sh19910711
    sh19910711 2021/09/23
    TensorBoardにUMAPあったな / scipy.spatial.distance.cdist([query_embedding], sentence_vectors, metric="cosine") / "与えられたクエリ文に意味が近い文を検索 + タイトル文の潜在意味空間をUMAPで可視化"
  • WebAssemblyを用いてBERTモデルをフロントエンドで動かす - OPTiM TECH BLOG

    はじめまして。R&Dチーム所属、20.5卒の伊藤です。 普段の業務では自然言語処理と格闘していることが多いです。 今回は自然言語処理モデルとして有名なBERTをWebAssemblyを使用してフロントエンドで動かしてみた話になります。 最近、自然言語処理ライブラリとして普段お世話になっているHugging Face社のTransformersのTokenizerがRustで実装されていることを知り、それならばWebAssemblyにコンパイルして動かせるのではないかと試したみたのがきっかけです。 Tokenizerのみ動かしても実用性に乏しいため、Tokenizerから得られた結果からBERTを用いた推論をブラウザで動作させるまでを行い、備忘録がでら手順をまとめました。 どなたかの参考になれば幸いです。 8/26追記 記事内のコードを含むリポジトリを公開しました!Dockerを使用してブ

    WebAssemblyを用いてBERTモデルをフロントエンドで動かす - OPTiM TECH BLOG
    sh19910711
    sh19910711 2021/08/21
    "Hugging Face 社のTransformers の Tokenizer が Rust で実装されている / WebAssembly にコンパイルして動かせるのではないかと試したみた / Tokenizer から得られた結果から BERT を用いた推論をブラウザで動作させるまで"
  • pytorch-transformersを触ってみる① - 機械学習・自然言語処理の勉強メモ

    今更ながら、pytorch-transformersを触ってみます。 このライブラリはドキュメントが充実していて、とても親切です。 なので、今回はドキュメントに基づいて触ってみただけの備忘録です。 以下、有名どころのBERTで試してます。 詳しいことはここなどを参照してください。 huggingface.co はじめに 以下で、入手できます。簡単です。 pip install pytorch-transformersインストールしたら、以下でimportします。 import torch from pytorch_transformers import BertTokenizer, BertModel pytorch-transformersの基は以下の3つのクラスで構成されます。 model classes モデル体 configuration classes モデルのパラメータを設

    pytorch-transformersを触ってみる① - 機械学習・自然言語処理の勉強メモ
  • はじめての自然言語処理 spaCy/GiNZA を用いた自然言語処理 | オブジェクトの広場

    前回は BERT についてその概要と使い方を紹介しました。今回は自然言語処理ライブラリである spaCyspaCyフロントエンドとする日NLPライブラリの GiNZA について紹介します。 1. 始めに 記事では欧米で有名な自然言語処理ライブラリである spaCy とリクルートと国立国語研究所の共同研究成果である日NLPライブラリ GiNZA について紹介します。記事の前半では、spaCy と GiNZA の概要と日語を処理する際の基的な機能/操作について説明します。後半では、spaCy で提供される文章分類機能について、前回までに紹介した手法も含めて精度を比較してみます。 2. spaCy と GiNZA の概要 spaCy は Explosion AI 社の開発する Python/Cython で実装されたオープンソースの自然言語処理ライブラリで MIT ライセ

    はじめての自然言語処理 spaCy/GiNZA を用いた自然言語処理 | オブジェクトの広場
    sh19910711
    sh19910711 2021/05/08
    "異なる言語でも spaCy で解析すれば、その後に続く処理を同一ロジックで対応できる / 2019年4月にリクルートと国立国語研究所の研究成果である GiNZA が登場 / 早い話が spaCy を日本語で利用できるようになった"
  • SentencePiece + 日本語WikipediaのBERTモデルをKeras BERTで利用する

    SentencePiece + 日WikipediaのBERTモデルをKeras BERTで利用する TL;DR Googleが公開しているBERTの学習済みモデルは、日Wikipediaもデータセットに含まれていますが、Tokenizeの方法が分かち書きを前提としているため、そのまま利用しても日語の分類問題ではあまり高い精度を得ることができません。 このため、SentencePieceでTokenizeしたデータセットで学習し直す必要があります。 BERTのトレーニングは結構な時間やマシンリソースが必要ですが、ありがたいことにSentencePiece+日Wikipediaで学習済みのモデルを配布してくれている方がいらっしゃるので、今回は以下を利用します。 BERT with SentencePiece を日Wikipedia で学習してモデルを公開しました BERT

  • 【R】数字の集合をトピックモデルで分析したらなかなか良くてびっくりした話。 - データ分析系男子。

    前回、疎行列をクラスタリングする話を書きました。 wanko-sato.hatenablog.com そこでふと思いついたのが、「数字の羅列を単語の集合とみなして自然言語処理のスキームに当てはめられるんじゃね?」ということです。どういうことかというと、 [[1]] [1] 246 308 149 170 161 233 291 218 260 171 155 151 [[2]] [1] 383 331 353 [[3]] [1] 310 333 [[4]] [1] 255 247 223 284こんな感じのデータがあるとします。個々の数字はなんでも良いのですが、例えばこれがある消費者の買った商品IDの集合だとします。通常は、前回書いたとおり、これを主成分分析にかけたり、クラスタリングしたり、あるいはあらかじめ属性がわかっていれば教師あり学習させてみたり、といろいろ思いつくわけなんです。が、

    【R】数字の集合をトピックモデルで分析したらなかなか良くてびっくりした話。 - データ分析系男子。