柔軟性の高い正規表現を書こうとすると、避けて通れないのが先読み・後読みです。 先読み・後読みに関して、いままではとりあえず的な理解をしていたのですが、それだと説明できない正規表現に遭遇したので、説明できるまで理解を深めてみました。 とりあえず的な理解 正規表現を使って間もない人が先読み・後読みを理解するための説明です。 肯定的先読み (?=pattern) 次の正規表現では直後に def がある abc(def は含まない)に一致します。
![正規表現の先読み・後読みを極める!](https://cdn-ak-scissors.b.st-hatena.com/image/square/23d1d6504a87f54875d14e1fde510d6b729844df/height=288;version=1;width=512/https%3A%2F%2Fabicky.net%2Fassets%2F20100530%2Fcaret-d10a8b56fa7c866091636e0e1cfff1f7a6c640c493598c309d4ac28cdf8d4580c3c1557416eb0a95a45fa659ba97dd87dd68d21c97da5e8a0e1f2f42ca0d3a27.png)
社内で LT をする機会があったので、最近趣味で MeCab のソースコードを読んでいることもあって日本語形態素解析について初歩的な説明をしてみました。 今まで系列ラベリングとか勉強したことがあるくせに、日本語みたいに分かち書きされてない言語の形態素解析がどう行われているかよくわかっていませんでした・・・。 形態素解析の解説資料は色々目を通したことがあったんですが、単語分割と品詞タグ付けを合わせて系列ラベリングの問題として扱っていると思い込んでいたので「????」な状態でした。思い込みって怖いですね。 ちなみに、スライド内でチラッと言及しているダブル配列については次のエントリーが素晴らしくわかりやすいです。 情報系修士にもわかるダブル配列 - アスペ日記
先日、次のエントリーを書きました。 日本語形態素解析の裏側を覗く!MeCab はどのように形態素解析しているか - クックパッド開発者ブログ このエントリーを書く際に MeCab のソースコードをそれなりに読んだので、記憶が薄れないうちにメモっておきます。とりあえず形態素解析部分です。コスト算出部分は気が向いたら書きます・・・。 勘違いしている箇所もあるかと思うので、気付いたら指摘してもらえると嬉しいです! 形態素解析時の主要クラス 形態素解析時に関連するクラスとして特に意識しないといけないのは以下のクラスかと思います。メソッドも主要なものしか表示していません。 Show the source 形態素解析時のシーケンス図 主要クラスを把握したら、次は解析の流れです。クラス図のとおり model が viterbi を所有していますが、model()->viterbi()->analyze(
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く