サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
TGS2024
taku910.github.io
制約付き解析(部分解析) 概要 入力文の一部の形態素情報が既知である、あるいは境界がわかっているときに、 それを満たすように解析する機能です。 たとえば、「にわにはにわにわとりがいる。」という文に対して、 「はにわ」の部分が名詞であるとか、「にわとり」の部分が一つの形態素 であるというように指定した上で解析することができます。このとき、 制約に反する4文字目の「は」が単独で形態素となったり、「にわとり」が「にわ」と「とり」 に分割されるような解析候補は排除されます。 入力フォーマット MeCabのデフォルト出力と同じようなフォーマットで制約を記述します。 MeCabは -p (--partial) オプション付きで起動する必要があります。 各行は以下のいずれかに該当します. 文断片 文の断片です。制約がないときと同じように通常の形態素解析が行われます。ただし文断片をまたぐような 形態素は出
概要 単語辞書の構造を理解することで, MeCab を汎用的なテキスト変換ツールとして利用することができます. 例えば, ひらがな to カタカナ変換, ローマ字 to ひらがな変換, Auto Link等を MeCab だけで実行できます ファイル 単語辞書を構築するには, 最低以下のファイルを作成する必要があります. *.csv ファイル (単語辞書) matrix.def (連接表) unk.def (未知語用品詞定義) char.def (未知語の文字定義) dicrc (設定ファイル) *.csv ファイル 単語辞書です エントリは, 以下のような CSV で追加します. test,1223,1223,6058,foo,bar,baz 最初の4つは必須エントリで, それぞれ 表層形 左文脈ID (単語を左から見たときの文脈 ID) 右文脈ID (単語を右から見たときの文脈 ID)
出力フォーマット 概要 MeCab は, ChaSen と同様, 出力のフォーマットを比較的自由に再定義することができます. また, 設定ファイルにフォーマットを複数記述しておき, 実行時にそれらを 切り変えることが可能です. これは, MeCab 独自の機能です. 出力フォーマットの指定 以下の 3つ出力フォーマットを変更することができます. node: 1つの形態素を出力, デフォルトは空文字 unk: 1つの未知語形態素を出力, デフォルトは node と同一フォーマット bos: 形態素解析の結果に先だって出力 (header 的役割), デフォルトは空文字 eos: 形態素解析の結果の後に出力 (footer 的役割), デフォルトは "EOS\n" eon: N-best出力で, N-Bestの出力が終了したときに出力, デフォルトは空文字列 明示的に指定されない場合, それぞ
形態素解析の歴史 オープンな形態素解析器として Juman, ChaSen が存在する. それぞれの 基本的な開発理念は以下である Juman Juman 以前の商用的に配布されていた形態素解析器は, 辞書や品詞体系 連接規則はほぼ固定されており, ユーザ自身自由に定義できなかった. Juman は これらの定義すべて外部に出し自由な定義が可能になった. 辞書は比較的入手しやすいが, 連接コストや単語生起コストの定義は 人手によって行わざるをえなかった. 解析ミスを発見するたびに副作用が無い範 囲で連接コストを修正する必要があり, 開発コストが大きい. また, Juman は日本語の形態素解析として開発されていたので, 未知語処理が日本語に特化されており, 未知語処理の定義を 自分で与えることはできない. また, 品詞は2階層までに固定されており, 品詞体系には一種の制限がある. ChaS
概要 学習用コーパスからパラメータ(コスト値)を推定することができます. MeCab 自身は品詞体系に非依存な設計になっているため, 独自の品詞体系, 辞書, コーパスに基づく解析器を作成することができます. パラメータ推定には Conditinoal Random Fields (CRF) を使っています. 処理の流れ データフロー図は次のようになります. パラメータ推定には以下のサブタスクがあります. Seed辞書の準備 設定ファイルの準備 dicrc char.def unk.def rewrite.def feature.def 学習用コーパスの準備 学習用バイナリ辞書の作成 CRF パラメータの学習 配布用辞書の作成 解析用バイナリ辞書の作成 評価 再学習 それぞれ順に説明していきます. Seed辞書の準備 MeCabの辞書は CSV で記述されます. Seed 辞書と配布辞書の
概要 辞書への単語追加には, 二つの方法があります. システム辞書への追加 ユーザ辞書への追加 システム辞書への追加 辞書更新が頻繁でないときや, 解析速度を落としたくない時は, 直接 システム辞書を変更するのがよいでしょう. mecab-ipadic があるディレクトリに移動 foo.csv というファイルを作成 (拡張子が .csv なら何でも可) foo.csv に単語を追加 辞書の再コンパイル + インストール % /usr/local/libexec/mecab/mecab-dict-index -f euc-jp -t euc-jp % su # make install -f charset: CSVの文字コード -t charset: バイナリ辞書の文字コード 例: utf-8の辞書を作成する例 % /usr/local/libexec/mecab/mecab-dict-i
品詞IDの定義 概要 出力される素性(品詞)に任意の数値ID を付与することができます. 通常, 素性は文字列として表現されますが, 機械処理には向いていません. 数値ID に変換することで, 機械処理が容易になります. 素性にどの ID を割りあてるかは, ユーザが自由に定義することができます. 設定ファイル 配布辞書のディレクトリにある pos-id.def を変更します. 1行が1つのマッピングルールに対応します. 各パターンは以下のフォーマットで 記述します. マッチパターン ID という形式で記述します. マッピングルールは先頭から順に走査されて 最初にマッチしたものが使われます. マッチパターンでは簡単な正規表現がを使うことができます. *: すべての文字列にマッチ (AB|CD|EF): AB もしくは CD もしくは EF にマッチ AB: 文字列 AB のみに完全マッチ
MeCab に至るまでの形態素解析器開発の歴史等はこちらをご覧ください メーリングリスト 一般ユーザ向けメーリングリスト 開発者向けメーリングリスト 新着情報 2013-02-18 MeCab 0.996 configure script の不備によりiconvへのリンクに失敗する問題を修正 ユーザ辞書用CSVファイルのコストと左/右文脈IDを付与し, 新たなCSVファイルを生成する機能の追加 解析結果からLattice を作成する Lattice::set_result() メソッドを追加. 単体テスト時のスタブの作成等に利用可能 2013-01-24 MeCab 0.995 部分解析機能の再実装 部分解析機能のためのAPI (Lattice:set_boundary_constarint, Lattice::set_feature_constraint) の追加 2012-06-03
CaboCha/南瓜: Yet Another Japanese Dependency Structure Analyzer CaboCha/南瓜とは CaboCha は, Support Vector Machines に基づく日本語係り受け解析器です。 特徴 Support Vector Machines (SVMs) に基づく, 高性能な係り受け解析器 SVM の分類アルゴリズムの高速化手法である PKE (ACL 2003 にて発表)を適用. IREX の定義による固有表現解析が可能 柔軟な入力形式. 生文はもちろん, 形態素解析済みデータ, 文節区切り済み データ, 部分的に係り関係が付与されたデータからの解析が可能 係り受けの同定に使用する素性をユーザ側で再定義可能 データを用意すれば, ユーザ側で学習を行うことが可能 内部の辞書に, 高速な Trie 構造である Double
Template type Note also that there are two types of templates. The types are specified with the first character of templates. Unigram template: first character, 'U' This is a template to describe unigram features. When you give a template "U01:%x[0,1]", CRF++ automatically generates a set of feature functions (func1 ... funcN) like: func1 = if (output = B-NP and feature="U01:DT") return 1 else ret
Zinnia: Online hand recognition system with machine learning [Japanese][English] Zinnia is a simple, customizable and portable online hand recognition system based on Support Vector Machines. Zinnia simply receives user pen strokes as a sequence of coordinate data and outputs n-best characters sorted by SVM confidence. To keep portability, Zinnia doesn't have any rendering functionality. In additi
Zinnia: 機械学習ベースのポータブルなオンライン手書き文字認識エンジン [日本語][英語] Zinniaは機械学習アルゴリズム SVM を用いたポータブルで汎用的な オンライン手書き文字認識エンジンです。Zinniaは組み込みの容易さと汎用性を高めるために、 文字のレンダリング機能は持っていません。Zinniaは文字のストローク情報を座標の連続として受け取り、 確からしい順にスコア付きでN文字の認識結果を返すだけに機能を限定しています。 また、認識エンジンは完全に機械学習ベースであるために、文字のみならずユーザの任意のマウス・ペンストロークに対して任意の文字列をマッピングするような認識エンジンを小コスト作成することができます。 主な特徴 機械学習アルゴリズムSVMによる高い認識精度 ポータブルでコンパクトな設計 -- POSIX/Windows (C++ STLのみに依存) リエント
このページを最初にブックマークしてみませんか?
『taku910.github.io』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く