タグ

tokenizerとNLPに関するsh19910711のブックマーク (26)

  • text-embeddings-inference で日本語トークナイザーモデルの推論をする - A Day in the Life

    HuggingFace が提供している推論サーバ、text-embeddings-inference(以下TEI)は rust で書かれており、各種GPUアーキテクチャ対応の Docker コンテナも用意され、GPUアーキテクチャが FlashAttention-2 対応以降なら、推論速度も python の transformers ライブラリで動かすよりも約1.5~2倍弱の速さというかなりのパフォーマンスで、番でのハイパフォーマンス推論サーバとして重宝している。 しかしながら、日語環境での問題点の一つが rust ベースの FastTokenizer 動かせる、つまり tokenizer.json を用意しているモデルでないと利用できないことだ。日語 transformer モデルの多くが、unidic や mecab といった python で動く形態素解析辞書・ライブラリを利

    sh19910711
    sh19910711 2025/10/18
    2024 / "text-embeddings-inference: HuggingFace が提供している推論サーバ / GPUアーキテクチャが FlashAttention-2 対応以降なら、推論速度も python の transformers ライブラリで動かすよりも約1.5~2倍弱の速さ"
  • cc100 ja で日本語 tokenizer を huggingface tokenizers で train するメモ

    2023/09 時点で, LLM 用の主なトークナイザ(主には BPE(Byte Pair Encoding) であるが, sentencepiece. huggingface tokenizers は UNIGRAM なども対応)は以下の5つでしょうか. sentencepiece 一通りあり. protobuf を要求しつらみ 😢 tiktoken https://github.com/openai/tiktoken 高速(Rust 記述). BPE のみ? ただしトレーニング部分は無い https://github.com/openai/tiktoken/issues/25 llama.cpp https://github.com/ggerganov/llama.cpp/pull/252 C++ 記述. sentencepiece 互換のモデルロード(UNIGRAM も OK)に対

    cc100 ja で日本語 tokenizer を huggingface tokenizers で train するメモ
    sh19910711
    sh19910711 2025/09/20
    2023 / "vocab サイズを大きく取る(6 万 vocab 超え)トークナイザ + 多言語用だと, BPE ではなく Unigram 表現のほうが主流のようです(要出典)"
  • 知識拡張型言語モデルLUKE

    言語処理学会第29回年次大会 併設ワークショップ JLR2023 (

    知識拡張型言語モデルLUKE
    sh19910711
    sh19910711 2025/09/16
    2023 / "LUKE: 単語とエンティティの文脈付きベクトルを出力 / エンティティは複数の入力トークンに分割されるため、Transformer内部でエンティティ同士の関係を捉えることが難しい"
  • byte列を直接処理する言語モデル

    Table of Contents これは何?byte列をpatchに区切る具体例提案手法のメリット学習効率の向上1つの処理単位に押し込める情報量をコントロールするサブトークンの特徴の利用どのように実現したか?byte列の表現の粒度提案手法における「語彙数」の定義言語モデルのアーキテクチャ所感提案手法のアプローチはマルチバイト言語に対しても有効か?ReferenceAppendixA. byte単位の表現とn-gram表現の持ち方 Metaが2024年12月13日に公開した論文 "Byte Latent Transformer: Patches Scale Better Than Tokens" [Pagnoni, 2024] を読んだのでその内容をまとめます。 ここで掲載された図は特に説明がない限り全て[Pagnoni, 2024]からの引用で、著作権は著者らに所属します。 これは何?

    byte列を直接処理する言語モデル
    sh19910711
    sh19910711 2025/07/08
    "byte列の「予測しやすさ」に基づいて動的に処理単位を決定 / 動的に決められる処理単位を論文中ではpatchとよび、tokenとは区別 / byte列の「予測しやすさ」の評価にentropyという特徴量"
  • 日本語向け教師なしキーフレーズ抽出の検証 - ABEJA Tech Blog

    ABEJAでデータサイエンティストをしている藤原です。 先月開催された 言語処理学会第31回年次大会(NLP2025) に参加し、その際に 埋め込みモデルベースの教師なしキーフレーズ抽出における長文に対する抽出精度の改善 というタイトルで発表を行いました。今回はその発表内容について改めて紹介させていただきます。 発表概要としては、日語のテキストに対して種々の教師なしキーフレーズ抽出手法を統一したインターフェースで実行できるようにツールを整備し、評価用データセットを構築して各種手法の性能比較を行いました。記事では開発したツール・評価データセットなど原稿であまり触れられなかった部分や、より詳細な実験結果についても記載します。 開発したツール・評価データセットはこちらからご利用いただけます。GitHub - flatton/keyphrase_extraction_tools はじめに キー

    日本語向け教師なしキーフレーズ抽出の検証 - ABEJA Tech Blog
    sh19910711
    sh19910711 2025/04/22
    "MDERank: 重要なフレーズほど文章から削除されると、その文章の意味が大きく変化するという仮定 + 元の文章との埋め込みの距離を算出し、距離が大きいほど重要なフレーズとみなす" doi:10.18653/v1/2022.findings-acl.34
  • SentencePieceでの日本語分かち書きをTransformersのパイプラインに組み込む - radiology-nlp’s blog

    背景 PyTorchでHugging Face Transformersを使って自然言語処理を行うとき,文章をモデルに入力するためにはまず単語単位に分かち書き (tokenize) しなければなりません. この前処理が思ったよりもやっかいなのです. 事前学習済みのモデルをTransformers公式から提供されているものから選んでしまえば,ここはあまり問題になりません.Transformers付属のtokenizerを使って一発で分かち書きできるからです. 実際,東北大からTransformersを通じて日語BERT事前学習済みモデルが公開されて久しいので,日語BERTモデルを使うのはだいぶ楽になりました. huggingface.co しかし,別の事前学習済みの日語BERTモデルで,Transformersのプラットフォームに載っていないものはいくつか存在します. これらのモデルを

    SentencePieceでの日本語分かち書きをTransformersのパイプラインに組み込む - radiology-nlp’s blog
    sh19910711
    sh19910711 2024/10/13
    "Transformers: アップデートが進むにつれて分かち書き処理の整備もかなり進んできた / SentencePieceを用いた分かち書きはtransformers仕様に変換できる / モデルをsentencepieceライブラリではなくtokenizersライブラリで読み込み" '21
  • Sentencepiece の分割を MeCab っぽくする - Qiita

    Sentencepieceは公開から約6年経ち、月間のpipダウンロード数が1000万を超え、開発者として嬉しい限りです。ただ、Sentencepieceを使用する際にMeCabなどの形態素解析器を前処理に使うケースが散見されます。単語分割をしたいというニーズは理解できますが、作者としてはあまり満足していません。多言語処理が一般的になり、しかもSentencepieceは言語非依存のシステムであるにもかかわらず、なぜベタな日語処理に依存するのでしょうか。このような使い方は、精度が向上するかもしれませんが、以下のようなデメリットもあります。 形態素解析が入力した空白と、元からある空白を区別できないため、分割されたデータから元の文を復元することができません。(可逆処理ではない)。 形態素解析システムに依存するため、メンテナンス性や可搬性が低下します。正しいバージョンの辞書を維持し、管理するこ

    Sentencepiece の分割を MeCab っぽくする - Qiita
    sh19910711
    sh19910711 2024/10/06
    "Sentencepieceの語彙選択にのみ MeCabを使用 / 分割時にMeCabを使用する必要がなく、Sentencepieceのモデルファイルだけで動作可能になる / MeCabの分割箇所を学習データに出現しないユニークなデリミタ文字列でエンコード"
  • 【形態素解析ツール】Juman++ ver2 の使い方

    Juman++は自然言語処理を行うにあたって必要不可欠な処理である形態素解析を行うツールです。MeCabと比べると処理速度は約1/10となりますが、より高精度の解析が可能で表記揺れや口語表現にも比較的堅牢な解析ができる印象があります。 インストール方法 ソースコードをダウンロードして手元の環境でビルドする必要があります。 対応する環境のインストール方法を参照してください。 Debian系Linux # パッケージの更新&install sudo apt update sudo apt install -y cmake g++ wget xz-utils # ソースをダウンロード wget "https://github.com/ku-nlp/jumanpp/releases/download/v2.0.0-rc3/jumanpp-2.0.0-rc3.tar.xz" tar xvJf jum

    【形態素解析ツール】Juman++ ver2 の使い方
    sh19910711
    sh19910711 2024/06/19
    "Juman++: MeCabと比べると処理速度は約1/10となりますが、より高精度の解析が可能で表記揺れや口語表現にも比較的堅牢な解析ができる印象 / 伊豆踊り子で試した場合もZipfの法則が成り立つことが確認できます" 2022
  • TfidfVectorizer.fitでtokenizeとidf計算にかかる時間の計測 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    TfidfVectorizer.fitでtokenizeとidf計算にかかる時間の計測 - Qiita
    sh19910711
    sh19910711 2024/06/18
    "なるべく高速なマージ方法を検討したく、その事前準備として、TfidfVectorizer.fitのどの工程に時間がかかっているのかを調査しよう / fitで時間がかかるのは、形態素解析(tokenize)とidfの計算" 2023
  • React + TypeScript + Vite + goya(ブラウザのみで形態素解析) - Qiita

    import { useState, useEffect } from 'react' import reactLogo from './assets/react.svg' import viteLogo from '/vite.svg' import './App.css' import goya_core, { parse } from "goya-core/web/goya_core"; //インポート import goya_features, { get_features } from "goya-features/web/goya_features"; //インポート function App() { const [text, setText] = useState("") const [goya, setGoya] = useState([[]]) useEffect(()

    React + TypeScript + Vite + goya(ブラウザのみで形態素解析) - Qiita
    sh19910711
    sh19910711 2024/06/15
    "Goya: Rust で書かれた日本語の形態素解析ツール + ブラウザやその他のJavaScriptランタイムで形態素解析を行うためにWebAssemblyにコンパイル"
  • kuromoji.js + UniDic で形態素解析(辞書のビルド) - Qiita

    UniDic の matrix.def のサイズが間違っていたので修正しました: 59G → 5.9G kuromoji.js (日形態素解析器 Kuromoji の JavaScript実装)と React でブラウザアプリを作っています。kuromoji.js はデフォルトでは IPADic (mecab-ipadic-20070801) を利用していますが、IPADic は現時点では更新が止まっており、辞書は新しいのがよい…… ということで、今回は UniDic 最新版(unidic-cwj-202302)を kuromoji.js 用にビルドして使ってみることにしました。 結果として、ブラウザアプリで UniDic 最新版を使って形態素解析を動かすことができました。 ただし、UniDic は IPADic に比べてデータ量が多いことに注意が必要です。パソコンのブラウザ(自分の

    kuromoji.js + UniDic で形態素解析(辞書のビルド) - Qiita
    sh19910711
    sh19910711 2024/06/13
    "kuromoji.js: デフォルトでは IPADic + IPADic は現時点では更新が止まって ~ / UniDic: IPADic に比べてデータ量が多い + スマホでは、トークナイザのロードにめちゃくちゃ時間がかかったあと、形態素解析がうまく動きませんでした"
  • darts-cloneを使って最長一致法で分かち書きしてみる - 株式会社ホクソエムのブログ

    ホクソエムサポーターの白井です。 呪術廻戦をみて喜久福がべたくなりました *1。 今回は形態素解析について深堀りしてみます。 日語の自然言語処理において、形態素解析は必ずといっていいほど通る道です。 形態素解析を必要としないSentencePieceのような深層学習向けのtokenizerも出現していますが、品詞単位で分割する形態素解析が重要であることは変わりありません。 そんなこんなで、『実践・自然言語処理シリーズ2 形態素解析の理論と実装』 (以降「形態素解析」と表記)を読んでいます。 リンク先の目次を見て分かるとおり、基礎の部分から実装まで説明されているです。 今回は4章で紹介されている darts-clone を使って、精度は粗いが高速で分かち書きができる最長一致法で、どれぐらい分かち書きが可能かを検証します。 事前知識・辞書引き darts-cloneを使ってみる 単語辞

    darts-cloneを使って最長一致法で分かち書きしてみる - 株式会社ホクソエムのブログ
    sh19910711
    sh19910711 2024/06/12
    "日本語の自然言語処理において、形態素解析は必ずといっていいほど通る道 / 最長一致法: 最初の文字から共通接頭辞検索し、一番長く一致した単語を採用する、ルールベースの分かち書き" 2020
  • pyknpで形態素解析と構文解析をする方法【python】

    はじめに こんにちは。 aiチャットボットを作る時は自然言語処理(NLP)をする必要があります。 その自然言語処理には、形態素解析や構文解析、意味解析などの工程があります。 この記事では形態素解析も構文解析も出来るpyknpの使い方を解説します。 ※インストール方法はネットに載っている情報でお願いします。 pyknpとは pyknpとは、京都大学が作ったknpとjumanをpythonで使うためのライブラリです。 因みに、knpは構文解析をするためのもので、jumanは形態素解析をするためのものです。 しかし、knpはjumanに依存しているので、knpだけで形態素解析も構文解析も出来ます(多分、コマンドラインでは構文解析しか出来ないと思います) 以下ホームページなど。 形態素解析をする方法 まず、形態素解析をする方法から説明します。 pyknpで形態素解析をする方法は二つあり、一つ目はj

    pyknpで形態素解析と構文解析をする方法【python】
    sh19910711
    sh19910711 2024/06/12
    "自然言語処理には、形態素解析や構文解析、意味解析などの工程 / pyknp: 京都大学が作ったknpとjumanをpythonで使うためのライブラリ / 形態素解析と構文解析ごとにライブラリを使わなくて良いのでとても楽"
  • 無料版Herokuで「Mecab+軽量化NEologd」を使った形態素解析に成功した

    新語などに対応したNEologd+Macabを使った形態素解析Heroku上で行うことに成功したので軽量化手法とともにご紹介します。 手順だけ教えろって方は後半を見てください。 (どうせ来月には忘れている自分のためです) NEologdはHerokuで使えない 「mecab-ipadic-neologd」とはMacabを新語などに対応させた辞書のことで、例えば通常のMecab辞書だと「鬼滅の刃」は一つの固有名詞だと認識できません。 しかしNEologdを辞書として使うとことで固有名詞として形態素解析を行ってくれます。 $ mecab -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd 小宮果穂 名詞,固有名詞,人名,一般,*,*,小宮果穂,コミヤカホ,コミヤカホ EOS 軽量化すればいい! ネット上にある殆どの記事は「無

    無料版Herokuで「Mecab+軽量化NEologd」を使った形態素解析に成功した
    sh19910711
    sh19910711 2024/06/12
    "Herokuの無料枠では容量制限500MB / しかし、公式ドキュメントにて提示されている軽量化手法を使えば制限をかいくぐって使うことが可能 / 辞書のビルド時に --eliminate-redundant-entry パラメータを渡す" 2022
  • RMeCabみたいなRパッケージをCRANに投稿した話

    gibasaパッケージについて RMeCabみたいなことができる、gibasaというRパッケージを個人で開発しています。先日CRANに投稿できたので、2023年4月20日現在では、install.packages("gibasa")とするだけでもインストールできるようになっています。 モチベーションとしては、tidytext::unnest_tokensと同じような処理をMeCabを利用しつつできるようにしたいということで開発しています。また、とくに最近は、より簡単に利用をはじめられるようにしようと、すこしずつ改善を続けています。 開発の背景 RからMeCabを利用できるRパッケージとしては、すでにRMeCabがあります。徳島大学の石田基広先生が開発されているもので、わりと昔からあるパッケージです。 RMeCabは便利なパッケージですが、残念ながら、CRANには登録されていません。 技術

    RMeCabみたいなRパッケージをCRANに投稿した話
    sh19910711
    sh19910711 2024/06/06
    "RMeCab: ビルドするにはlibmecab.dllなどのバイナリファイルが必要 + 一方で、CRANポリシーは基本的にそうしたバイナリファイルをソースパッケージに含めることを禁止"
  • spaCy + GiNZAで構文解析してみる

    はじめに Pythonではじめるテキストアナリティクス入門というを読んで、spaCyとGiNZAで形態素解析や単語間の係り受け解析をやってみて、もう少しいろんなことをやってみたいと思いました。 各ツールの関係 spaCyは、Explosion AI社が開発しているオープンソースの自然言語処理ライブラリです。公式サイトのspaCy is designed specifically for production use and ... ということから製品への格活用を想定して開発されています。 また、spaCyは、構文解析のための基的な機能を持っており、spaCy単体で日語の形態素解析や係り受け解析等を行うことができます。日語だけではなく、多数の言語に対応していて、日語用の解析モデルや英語用の解析モデルが付属しており、それらのモデルを切り替えて使用することで多数の言語に対応することが

    spaCy + GiNZAで構文解析してみる
    sh19910711
    sh19910711 2024/05/27
    "GiNZA: 形態素解析のために内部でSudachiPy(SudachiのPython版) + 辞書としてSudachi-coreを使用 / spaCy単体で日本語の形態素解析や係り受け解析等を行うことができ + 精度を比較すると、GiNZAを使用するのがよさそう"
  • Rustの形態素解析ライブラリ - VibratoとLindera

    Rust製の形態素解析ライブラリVibratoのご紹介です。MeCab互換で爆速のようです。Python版もあります。WASMのデモサイトもあります。 学術的な難しい話はできないので、興味のある方は開発者の方のページをご覧ください。 また比較も兼ねて、同じくRust製の形態素解析ライブラリのLinderaも紹介します。最後におまけでActix Webサーバに組み込み、APIとして形態素解析を提供する方法も説明します。 Vibrato 辞書ファイルのダウンロード 最初にVibrato専用の辞書ファイルをダウンロードします。コンパイル済みのものがありますのでこちらからダウンロードします。 辞書ファイルにはいろいろ種類があります。少し古いですがIPA+MeCabがサイズが7.5MBと一番小さくて使いやすいためこちらを使用します。ダウンロードしたら展開してください。この説明では$HOMEに展開しま

    Rustの形態素解析ライブラリ - VibratoとLindera
    sh19910711
    sh19910711 2024/05/21
    "Vibrato: Rust製の形態素解析ライブラリ + MeCab互換で爆速 + Python版、WASMのデモサイトもあり / 辞書ファイル: 少し古いですがIPA+MeCabがサイズが7.5MBと一番小さくて使いやすい" 2023
  • 論文紹介: SentencePieceの原著論文+α - radiology-nlp’s blog

    はじめに 2018年に登場したニューラル言語処理のための教師なしサブワード分割モジュール,SentencePiece。 開発意図や仕様を確認するために原著論文を読みました。 github.com 論文は2018年8月にarXivに投稿されています。 arxiv.org 著者・開発者はMeCab開発者でもある工藤拓さん。自然言語処理に関心のある方で知らない人はいないでしょう。 github.com 1冊まるごと形態素解析という驚異的なも執筆されています。 形態素解析の理論と実装 (実践・自然言語処理シリーズ) 作者: 工藤拓,言語処理学会出版社/メーカー: 近代科学社発売日: 2018/10/04メディア: 単行この商品を含むブログを見る 背景 基的事項をいくつか確認します。 SentencePieceは与えられた文章をサブワードに分割するモデルであり, コーパスからの教師なし学習が可

    論文紹介: SentencePieceの原著論文+α - radiology-nlp’s blog
    sh19910711
    sh19910711 2024/04/22
    "SentencePiece: 文法体系や言語学的観点からみて妥当な分割をするとは限りません(そのような設計を目指していません) > 単位は「形態素」ではなく単に「サブワード」と呼ばれることが多い" arXiv:1808.06226 2019
  • kuromoji.js + SudachiDict で形態素解析(辞書のビルド、IPADic・UniDic との比較) - Qiita

    UniDic の matrix.def のサイズが間違っていたので修正しました: 59GB → 5.9GB kuromoji.js (日形態素解析器 Kuromoji の JavaScript実装)と React を組み合わせて、クライアントサイドで完結するブラウザアプリを開発しています。kuromoji.js は IPADic (mecab-ipadic-20070801) をデフォルト辞書として使用していますが、収録語彙が私のアプリケーションの目的には最適ではないと感じていました。また、UniDic は機能面で魅力的ですが、ビルドして使ってみた結果、データサイズが大きすぎてスマートフォンでは動作しないという課題に直面しました。 そこで今回は、 SudachiDict(WorksApplications/SudachiDict: A lexicon for Sudachi)の可能性に

    kuromoji.js + SudachiDict で形態素解析(辞書のビルド、IPADic・UniDic との比較) - Qiita
    sh19910711
    sh19910711 2024/04/18
    "UniDic は機能面で魅力的ですが、ビルドして使ってみた結果、データサイズが大きすぎてスマートフォンでは動作しない / SudachiDict: 語彙が豊富で更新頻度が高く + kuromoji.js でビルドして利用することが可能"
  • さだまさしを kuromoji を用いて簡単に品詞分解してみる - Qiita

    さだまさし 名詞-固有名詞-人名-一般 さだまさしの、主に詩の歌詞を対象に、簡単な品詞分解と、それを基にした簡単な分析を行ってみた、というのがこの記事の内容です。 個人的な最終的なゴールは、さだまさし風の歌詞を自動生成する bot (さだロボ) を作る事になりますが、その過程を週一でディアゴスティーニ的に(サダゴスティーニとかは節度のある大人なので言わない)書いていければと思います。 ついでに、その道すがら、ちょっとした解析・分析結果なども書いていきます。 道具の用意 解析するにあたっていくつか道具が必要なので、最初に、使用したツール群について簡単にお話します。 kuromoji kuromoji KuromojiはJavaで書かれているオープンソースの日形態素解析エンジンです。 Java形態素解析を行いたい場合、昔は「Sen」などを使うことが多かったですが、atilika 社が

    さだまさしを kuromoji を用いて簡単に品詞分解してみる - Qiita