タグ

正規化に関するni66lingのブックマーク (5)

  • SudachiPy による自然言語処理の正規化|npaka

    「SudachiPy」による自然言語処理の「正規化」についてまとめました。 1. SudachiPy「SudachiPy」はワークス徳島人工知能NLP研究所が開発している形態素解析器「Sudachi」のPython版です。 2. 正規化「正規化」とは、同じ意味の単語を統一的な内部表現に変換することで、テキストの比較を容易にする処理です。これによって、全角の「ネコ」や半角の「ネコ」やひらがなの「ねこ」を同じ単語として処理できるようになります。 「Sudachi」では、この「正規化」の機能が提供されています。 3. Sudachiの単語の正規化「Sudachi」の、以下のような単語の正規化を提供します。 (1) 送り違い : 【例】打込む → 打ち込む (2) 字種 : 【例】かつ丼 → カツ丼 (3) 異体字 : 【例】附属 → 付属 (4) 誤用 : 【例】シュミレーション → シミュレー

    SudachiPy による自然言語処理の正規化|npaka
  • String#unicode_normalize (Ruby 3.3 リファレンスマニュアル)

    unicode_normalize(form = :nfc) -> String[permalink][rdoc][edit] self を NFC、NFD、NFKC、NFKD のいずれかの正規化形式で Unicode 正規化した文字列を返します。 [PARAM] form: 正規化形式を :nfc、:nfd、:nfkc、:nfkd のいずれかで指定します。省略した場合は :nfc になります。 [EXCEPTION] Encoding::CompatibilityError: self が Unicode 文字列ではない場合に発生します。 このメソッドでの "Unicode 文字列" とは、UTF-8、UTF-16BE/LE、 UTF-32BE/LE だけではなく GB18030、UCS_2BE、and UCS_4BE を含みます。 また、self が UTF-8 以外のエンコーディング

  • groonga/mroongaの文字列正規化機能 (normalizer) の挙動を追ってみる - Y-Ken Studio

    groonga/mroongaが標準で備える文字列正規化機能(ノーマライザ・normalizer)として、 いわゆるgroonga独自のnormalizer(NormalizerAuto)と呼ばれるもがあります。 これは、大文字・小文字だけでなく、全角・半角を同一視できるという UnicodeのNFKCを用いた機能です。 とても便利な正規化機能なのですが、この文字列の正規化方法は MySQLで利用されているCOLLATION(照合順序)とは異なる動作です。 利用シーンによっては、MySQLでの作法に合わせた方が都合が良い場合があります。 そこで、groonga-normalizer-mysqlというパッケージの出番です。 記事では、それら正規化機能の挙動の違いを追いかけてみたいと思います。 mroongaで使えるnormalizer いまのところ4つのnormalizerが提供されていま

    groonga/mroongaの文字列正規化機能 (normalizer) の挙動を追ってみる - Y-Ken Studio
  • Pythonで unicodedata.normalize を使って全角半角を正規化する方法

    (この記事は 2008年03月14日に別のブログに投稿した記事を移動・編集したものです。) インターネット上の日語を扱っていると、全角半角が統一されていない事による表記揺れをなんとかしたい場面に出くわします。半角で書かれた iPod も、全角で書かれたiPodも同じものとして扱いたいときや、あるいは単に見た目がきれいになるように、英数字は半角に、カタカナは全角にそろえたい、という場合です。 Python では setomitsさんによる zenhan.py を使うと、文字種ごとに全角半角を選択して変換することができ、除外文字も設定できるので便利です。ただ、そこまで柔軟でなくても良く、単に表記揺れがなくなれば良い、という場合も多いかと思います。その場合はPythonの標準ライブラリに含まれる unicodedata モジュールの normalize 関数を使うと便利です。 >>> impo

  • Unicode正規化

    正しい並び替えでは、表示は(A)のままですが、間違った並び替えでは、正規結合クラスが互いに等しいMACRONとACUTEを並び替えたため、表示は(B)のように、eの上のアクセント記号の位置が入れ替わってしまいます。 正規分解・互換分解 ある文字列の正規分解 (Canonical Decomposition) を得るには、まず、それぞれの文字を正規マッピングによって再帰的に、可能な限り、分解します。すなわち、1回分解した後に現れた文字がなおも分解可能であればさらに分解します。分解マッピングがその文字自身である場合は、分解不可能なので、そのままです。 しかし、分解しただけでは必ずしも正しい結果が得られません。つまり、結合文字の順序の一意性を保証するため、分解後の文字列に対して正規順序アルゴリズムを適用しなければなりません。このように、正規マッピングによる再帰的分解と、正規順序アルゴリズムによ

  • 1