Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

条件付確率場とベイズ階層言語モデルの統合による半教師あり形態素解析

NotificationsYou must be signed in to change notification settings

musyoku/python-npycrf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

修正版NPYCRFのC++実装です。

L-BFGSの実装がまだできていないので代わりにSGDでCRFを最適化します。

NPYLMは3-gramで固定です。

Todo

  • NPYCRFの学習
  • モデルの保存
  • 評価
  • NPYLM単体による単語分割
  • L-BFGS
  • CRF単体の学習
  • CRF単体による単語分割
  • CRFの学習の並列化
  • 最大単語帳の予測に基づく枝刈り

動作環境

  • Boost 1.65
  • Python 3
  • C++14
  • python3-config

準備

macOS

macOSの場合、PythonとBoostはともにbrewでインストールする必要があります。

Python 3のインストール

brew install python3

PYTHONPATHを変更する必要があるかもしれません。

Boostのインストール

brew install boost-python3

Ubuntu

Boostのインストール

./bootstrap.sh --with-python=python3 --with-python-version=3.5./b2 python=3.5 -d2 -j4 --prefix=YOUR_BOOST_DIR install

Pythonのバージョンを自身のものと置き換えてください。

ビルド

makefileのBOOSTBOOST_PYTHON3を自分の環境に合わせ書き換えます。

以下のコマンドでnpycrf.so/run/に生成されます。

make install

学習

読み込んだテキストから教師付きデータをランダムに選択する場合は/run/split_file/train.pyを使います。

python3 train.py -file dataset.txt -ssl-split 0.1 -td-split 0.9 -neologd /usr/local/lib/mecab/dic/mecab-ipadic-neologd

教師付きデータと教師なしデータをあらかじめ用意しておく場合は/run/separate_files/train.pyを使います。

python3 train.py -file-l supervised.txt -file-u unsupervised.txt -td-split 0.9 -neologd /usr/local/lib/mecab/dic/mecab-ipadic-neologd

学習の一時停止や再開はできません。

学習速度はCPUとコンパイラと最大単語長によりますが、200文/秒〜1800文/秒程度です。

教師付きデータのうち、指定した最大単語長を超える長さの単語が含まれる文はデータセットから除かれます。

分割

ビタビアルゴリズムによる最尤分割を求めます。

python3 viterbi.py -file test.txt -neologd /usr/local/lib/mecab/dic/mecab-ipadic-neologd

注意事項

研究以外の用途には使用できません。

https://twitter.com/daiti_m/status/851810748263157760

実装に誤りが含まれる可能性があります。

質問等、何かありましたらissueにてお知らせください。

結果

日本語版text8コーパスから1万文を教師付きデータとして用い、2chのけものフレンズなどのスレッドから7万文を教師なしデータとして用いました。

以下は教師なしデータに対するMeCabと学習後のNPYCRFの分割結果の一部です。

MeCab+NEologdサーバル / を / 救出 / し / た / 瞬間 / に / 黒 / セルリアン / の / 前足 / が / 砕け / た / の / は / 、NPYCRFサーバル / を / 救出 / し / た / 瞬間 / に / 黒 / セルリアン / の / 前足 / が / 砕け / た / の / は / 、MeCab+NEologdガイドブック / 発送 / さ / れ / て / た / けど / 初版 / は / 保存 / し / て / おき / たい / 症候群 / が / 発症 / し / て / しまい / そう / だ / わNPYCRFガイドブック / 発送 / さ / れ / て / た / けど / 初版 / は / 保存 / し / て / おき / たい / 症候群 / が / 発症 / し / て / しまい / そう / だ / わMeCab+NEologdiq / が / 溶ける / アニメ / 、 / と / 揶揄 / さ / れ / た / の / は / それだけ / 動物 / の / 視点 / に / 寄り添え / たNPYCRFiq / が / 溶け / る / アニメ / 、 / と / 揶揄 / さ / れ / た / の / は / それ / だけ / 動物 / の / 視点 / に / 寄り / 添 / え / たMeCab+NEologd人間 / から / すれ / ば / 紙飛行機 / を / 作っ / たり / 、 / 遊び / を / 考える / の / は / 簡単 / な / こと / だ / けどNPYCRF人間 / から / すれ / ば / 紙 / 飛行機 / を / 作っ / た / り / 、 / 遊び / を / 考える / の / は / 簡単 / な / こと / だ / けどMeCab+NEologdこんな / こと / 今 / の / アニメ業界 / で / は / でき / ん / の / だろ / う / なっ / てNPYCRFこん / な / こと / 今 / の / アニメ業界 / で / は / でき / ん / の / だろ / う / な / っ / てMeCab+NEologd今更 / 気付い / た / ん / だ / けど / 野生 / 解放 / って / ヘラジカ / と / 戦う / 時 / ライオン / も / し / て / た / よ / ね / ?NPYCRF今更 / 気付 / い / た / んだけど / 野生 / 解放 / っ / て / ヘラジ / カ / と / 戦う / 時 / ライオン / も / し / て / た / よ / ね / ?MeCab+NEologd今日 / やっ / てる / # / 話 / タイムシフト / 予約 / 出来る / の / ?NPYCRF今日 / やっ / て / る / # / 話 / タイムシフト / 予約 / 出来る / の / ?MeCab+NEologdシリアス / や / バトル / アクション / だって / 日頃 / 好ん / でる / わけ / じゃ / ないNPYCRFシリアス / や / バトル / アクション / だ / っ / て / 日頃 / 好ん / で / る / わけ / じゃ / ないMeCab+NEologd最後 / アライ / さん / に / 活躍 / し / て / もらい / たいNPYCRF最後 / アライさん / に / 活躍 / し / て / もら / い / たいMeCab+NEologdフェネック / は / # / 番 / 目 / くらい / に / 頭 / が / いい / らしいNPYCRFフェネック / は / # / 番 / 目 / くらい / に / 頭 / が / いい / らしいMeCab+NEologdニコニコ / の / お陰 / か / この / スレ / の / スタートダッシュ / は / なかなか / だ / ねNPYCRFニコニコ / の / お陰 / か / この / スレ / の / スタート / ダッシュ / は / なかなか / だ / ねMeCab+NEologdデジタル / 版 / が / あれ / ば / 一番 / いい / ん / だ / けど / ねぇNPYCRFデジタル / 版 / が / あれ / ば / 一番 / いい / んだけど / ね / ぇMeCab+NEologdちょっと / 高い / 公式ガイドブック / だ / から / けものフレンズ / の / 人気 / なら / # / 万 / は / 売れる / と / 思う / よNPYCRFちょっ / と / 高い / 公式 / ガイドブック / だ / から / けものフレンズ / の / 人気 / なら / # / 万 / は / 売 / れる / と / 思う / よMeCab+NEologdパーク / 中 / の / ボス / が / 集結 / 、 / 変形 / 、 / 合体 / し / て / 巨大 / な / 真 / ボス / に / なっ / て / 黒セ / ルリアン / を / やっつける / 。NPYCRFパーク / 中 / の / ボス / が / 集結 / 、 / 変形 / 、 / 合体 / し / て / 巨大 / な / 真 / ボス / に / なっ / て / 黒 / セルリアン / を / やっつけ / る / 。

About

条件付確率場とベイズ階層言語モデルの統合による半教師あり形態素解析

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp