関連サイト
本書の関連ページが用意されています。
内容紹介
本書は、汎用形態素解析システムMeCabを開発した著者が、言語において意味を成す最小の要素である「形態素」の解析方法について、技術者向けにその理論や実装方法を網羅的、体系的に解説する。実装や高速化なども扱う点がユニークであるが、辞書やコーパスなどの言語資源の構築・利用といった形態素解析では外せないテーマもきちんと解説している。
本書を読めば、解析ツールを「ブラックボックス」として使っている人も中身を理解したうえで拡張・改良できる道筋ができ、ひいては独自の辞書の作成を目指せるようになる。C++11を使った具体的な実装方法も掲載。AI・自然言語処理関係の技術者、研究者には必携の書である。
書誌情報
- 著者: 工藤 拓
- 発行日: 2018-09-30 (紙書籍版発行日: 2018-09-30)
- 最終更新日: 2018-09-30
- バージョン: 1.0.0
- ページ数: 207ページ(PDF版換算)
- 対応フォーマット: PDF
- 出版社: 近代科学社
対象読者
形態素解析,MeCab,辞書,自然言語処理システム,コーパス,テキスト処理,文字コード,辞書引きアルゴリズム,最小コスト法,点予測,未知語処理,未知語,評価,解析に興味がある人
著者について
工藤 拓
1999 年 京都大学工学部電気電子工学科卒業
2001 年 奈良先端科学技術大学院大学情報科学研究科 博士前期課程修了
2004 年 奈良先端科学技術大学院大学情報科学研究科 博士後期課程修了(工学博士)
2004 年 NTT コミュニケーション科学基礎研究所リサーチアソシエイト
2005 年 Google 合同会社 ソフトウェアエンジニア
現在に至る
目次
まえがき
第1章 形態素解析の概要
- 1.1 形態素解析
- 1.2 実践MeCab:インストールと実行
- 1.3 主な形態素解析・単語分割システム
- 1.3.1 JUMAN
- 1.3.2 ChaSen
- 1.3.3 MeCab
- 1.3.4 KyTea
- 1.3.5 Sudachi
- 1.3.6 ウェブサービスとしての形態素解析
- 1.3.7 ブラウザ上で動く単語分割
- 1.3.8 SentencePiece
- 1.4 まとめ
第2章 言語資源
- 2.1 辞書
- 2.1.1 自然言語処理システムにおける辞書
- 2.1.2 辞書を使うか使わないか
- 2.1.3 品詞
- 2.1.4 可能性に基づく品詞体系
- 2.1.5 活用
- 2.1.6 動的活用展開と静的活用展開
- 2.1.7 超短単位
- 2.2 コーパス
- 2.2.1 生コーパス
- 2.2.2 注釈付きコーパス
- 2.3 形態素解析のための辞書
- 2.3.1 JUMAN 辞書
- 2.3.2 ipadic
- 2.3.3 NAIST-jdic
- 2.3.4 UniDic
- 2.3.5 NEologd
- 2.4 形態素解析のための注釈付きコーパス
- 2.4.1 京都大学テキストコーパス・KNB/KWDLC コーパス
- 2.4.2 RWC コーパス
- 2.4.3 現代日本語書き言葉均衡コーパス(BCCWJ)
- 2.4.4 日本語話し言葉コーパス(CSJ)
- 2.5 辞書の選び方
- 2.5.1 最適な辞書は応用ごとに変わる
- 2.5.2 単語長
- 2.5.3 何の曖昧性を解消しようとしているのか?
- 2.6 まとめ
第3章 テキスト処理の基礎
- 3.1 文字コード
- 3.2 Unicode とUTF-8
- 3.3 UCS 正規化とCSI
- 3.4 UTF-8 によるUCS正規化
- 3.5 文字種の判定
- 3.6 文字の正規化
- 3.7 波ダッシュ,全角チルダ問題
- 3.8 まとめ
第4章 辞書引きアルゴリズム
- 4.1 辞書引きの難しさ
- 4.2 擬似トライ
- 4.3 共通接頭辞検索とトライ
- 4.4 ダブル配列
- 4.4.1 ダブル配列による共通接頭辞検索
- 4.4.2 ダブル配列の圧縮
- 4.4.3 ダブル配列の構築
- 4.4.4 Darts-clone を用いた辞書引きの具体例
- 4.5 メモリマップトファイル
- 4.6 辞書のみを用いた単語分割法:最長一致法
- 4.7 まとめ
第5章 最小コスト法
- 5.1 ラティス
- 5.2 生起コストと連接コスト
- 5.3 ビタビアルゴリズム
- 5.4 最小コスト法の例:MeCab
- 5.5 コスト推定法
- 5.5.1 人手によるコスト設定
- 5.5.2 隠れマルコフモデル
- 5.5.3 拡張隠れマルコフモデル
- 5.5.4 構造学習
- 5.5.5 構造学習の例:MeCab
- 5.5.6 パーセプトロンによる学習
- 5.5.7 目的関数と最適化
- 5.5.8 構造化サポートベクトルマシン
- 5.5.9 条件付き確率場
- 5.5.10 パーセプトロンと条件付き確率場の関係
- 5.5.11 事前計算による高速化
- 5.5.12 正則化
- 5.6 選択的トライグラム
- 5.7 連語登録
- 5.8 高速化のための工夫
- 5.8.1 ゼロコピー
- 5.8.2 メモリプールによるノードの管理
- 5.8.3 連接表の実装
- 5.9 まとめ
第6章 点予測
- 6.1 点予測による単語分割
- 6.2 点予測による品詞推定
- 6.3 点予測の特徴
- 6.3.1 実装の容易さと頑健性
- 6.3.2 不完全な入力からの解析
- 6.3.3 言語資源の有効活用
- 6.3.4 単語長による影響
- 6.3.5 辞書の役割
- 6.3.6 分割の一貫性
- 6.4 構造学習による点予測の学習
- 6.5 まとめ
第7章 未知語処理
- 7.1 未知語
- 7.2 解析時未知語処理
- 7.2.1 最小コスト法における解析時未知語処理
- 7.2.2 解析時未知語処理の例:MeCab
- 7.2.3 既知語から派生した未知語の自動認識
- 7.2.4 点予測における解析時未知語処理
- 7.2.5 未知語処理の学習
- 7.3 辞書拡充
- 7.4 新語のコスト推定
- 7.5 まとめ
第8章 評価
- 8.1 分割正解率
- 8.2 精度・再現率・F 値
- 8.3 品詞出力の評価
- 8.4 分割の一貫性
- 8.5 回帰評価
- 8.6 mecab-system-eval を用いた評価
- 8.7 まとめ
第9章 高度な解析
- 9.1 n-best 解析
- 9.1.1 n-best 解析の例:MeCab
- 9.1.2 最小コスト法におけるn-best 解析
- 9.1.3 点予測法におけるn-best 解析
- 9.2 ソフト分かち書き
- 9.2.1 ソフト分かち書きの例:MeCab
- 9.2.2 最小コスト法におけるソフト分かち書き
- 9.2.3 点予測法におけるソフト分かち書き
- 9.3 制約付き解析
- 9.3.1 制約付き解析の例:MeCab
- 9.3.2 最小コスト法における制約付き解析
- 9.3.3 点予測法における制約付き解析
- 9.4 部分注釈付きコーパスからの学習
- 9.4.1 最小コスト法における部分注釈からの学習
- 9.4.2 点予測法における部分注釈からの学習
- 9.5 まとめ