タグ

tokenizerと*programに関するsh19910711のブックマーク (23)

  • 【データ整理】Unicode正規化とMySQL COLLATION

    utf8mb4_bin はバイナリレベルで文字を比較するため当然全て異なる結果となります。 utf8mb4_general_ci は比較的よく使われるCollationですが、半角アルファベットの大文字小文字の違いが同一視されるのが特徴です。 また絵文字の区別はされないのはよく「寿司ビール問題」として有名ですね。 utf8mb4_unicode_ci は「ア」「ア」が同一されるのは良いですが、「は」「ぱ」「ば」あたりが同一視されるなど、日語を扱う上では正直使いにくいという印象です。 utf8mb4_unicode_520_ci は、utf8mb4_unicode_ci に対して絵文字が全て同一視されるのを無くしたCollationですが、utf8mb4_unicode_ciと同じく日語には不向きです。 テーブルのデフォルト Collation MySQLではテーブルを作るときにCHAR

    【データ整理】Unicode正規化とMySQL COLLATION
    sh19910711
    sh19910711 2025/10/25
    2023 / "NFD・NFCの場合は「A」「A」のように全角半角による差を吸収しない / NFDとNFCの違いは、合成文字を変換した場合に表れ / 半濁音の文字は、「結合済文字」で表す方法と「基底文字 + 結合文字」で表す方法の2通り"
  • 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 表現のほうが主流のようです(要出典)"
  • 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
  • 【形態素解析ツール】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
  • さだまさしを kuromoji を用いて簡単に品詞分解してみる - Qiita

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

    さだまさしを kuromoji を用いて簡単に品詞分解してみる - Qiita
  • GitHub - buruzaemon/natto: A Tasty Ruby Binding with MeCab

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - buruzaemon/natto: A Tasty Ruby Binding with MeCab
  • MeCab の Ruby 各種ライブラリをベンチ取ってみた - Kōenji

    前書き たっくん(@takkkun)との会話 「MeCab の Ruby Binding、SWIG 使ってるから MeCab と密結合してて、手元とサーバで MeCab のバージョンが違う時にインストールするの面倒臭いんだよね」 「Natto gem 使えば良いじゃん」 「Natto gem 遅いんだよ」 前提条件 MeCab のバージョンは 0.996 を使用 ベンチマークは parse メソッド(mecab_parse_tostr 関数)のみを対象とする 何故 Natto gem が遅いのか調べた Natto::MeCab#parse メソッド内で、初期化時に作成された無名関数を呼んでること、ブロックがあった場合の処理の切り分けをしてること、ヘルパー経由でエンコーディングしてることがボトルネックになっていることが分かった ここの条件分岐やヘルパーメソッドの呼び出しをなくしハードコードし

    MeCab の Ruby 各種ライブラリをベンチ取ってみた - Kōenji
  • GitHub - fasiha/mecab-emscripten: The MeCab Japanese morphological analyzer for the Web!

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - fasiha/mecab-emscripten: The MeCab Japanese morphological analyzer for the Web!
  • 日本語形態素解析器のイメージ - 唯物是真 @Scaled_Wurm

    前にこんなツイートをしたけどもうちょっとちゃんとメモっておく ゆるふわカジュアル勢()なので内容に間違ってる点があったら教えてくださると嬉しいです 勝手なイメージだと、MeCab →一番使われてる 。速い。辞書を弄くるのが簡単。いろいろ移植されてる。Juman→出力が詳しい。代表表記に正規化できる。KNPを使うときはこれ。KyTea→新しくていろいろ更新されてる。読みの推定ができる。部分的タグ付けによるドメイン適応ができる。— 無限猿(id:sucrose)@12月病 (@Scaled_Wurm) October 22, 2014 大雑把に言うと形態素解析では文章を単語+品詞の列に分解する いわゆる学校でならった文法とは違う文法を使っているので注意が必要 ただし形態素解析器によって品詞体系や辞書に載っている単語が異なる 形態素解析器では単語や品詞の列にコストが計算できるようになっていて、そ

    日本語形態素解析器のイメージ - 唯物是真 @Scaled_Wurm
  • RMeCabで複数のテキストファイルの頻出ワードを抽出する - Tech Blog

    RMeCabとは 形態素解析はMeCabでもできるが、RMeCabを用いると、より手軽にかつ多様な処理を実行することができる。RMeCabは、RでMeCabを呼び出すインタフェースである。Rはオープンソースのデータ解析/マイニング言語であり、以下からインストールできる。 http://www.r-project.org/ RMeCabは、予めMeCabがインストールしてあれば、zipをダウンロードして、RGuiから[パッケージ]>[ローカルにあるzipファイルからのパッケージのインストール]を選択するだけで、インストールできる。 http://rmecab.jp/wiki/index.php?RMeCab 目的と手法 そこで、ここではRMeCabでディレクトリ中ファイルの単語の出現頻度のランキングを作成する。以下のスクリプトをRで実行する。歌詞のテキストファイルはLyrics Master

    RMeCabで複数のテキストファイルの頻出ワードを抽出する - Tech Blog