サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Wikipedia
hjym-u.hatenadiary.org
Recurrent Neural Networksなどの深層学習に基づく手法が近年の自然言語研究を席巻していて、画像認識のような圧倒的な性能差ではないですが、伝統的な構文解析のタスクでもベンチマーク精度を叩き出していたりします: Recurrent Neural Network Grammars 公開されている深層学習のフレームワークはまさに百花繚乱の状態で、多数のマシンに分散して計算が可能なGoogleのTensorFlowや、TensorFlowやTheanoをベースにして直観的にプログラミングができるKeras、日本のPreferred NetworksのChainer、高性能なアンサンブル機械学習ライブラリXGBoostでも有名なdmlc (Distributed (Deep) Machine Learning Community) のMXNetなど枚挙にいとまがありません。その中
日本語形態素解析エンジンMeCabで標準的に使われているIPA辞書に新語を追加したmecab-ipadic-neologdが公開されました: [O] MeCab 用の新語辞書 mecab-ipadic-neologd を公開しました これまでもWikipediaやはてなキーワードからとりだした単語をMeCabの辞書に登録する取り組みはいろいろとありました: livedoor Techブログ : wikipediaのデータや顔文字辞書からmecabのユーザ辞書を作成するフレームワーク MeCabの辞書にはてなキーワードを追加しよう - 不可視点 最近のJUMANの辞書にもWikipediaやWebからとられた単語が登録されています: JUMAN - KUROHASHI-KAWAHARA LAB mecab-ipadic-neologdは新語データを定期的に更新して改善を続ける予定ということで
2012年の国際的な画像認識技術評価タスクで、多段の畳み込みニューラルネットワークを使った手法が圧倒的な性能を達成してから、画像認識研究は深層学習中心に一変しました: [1409.0575] ImageNet Large Scale Visual Recognition Challenge 自然言語処理研究の分野でも、畳み込みニューラルネットワークを使う手法は、タスクごとの知識を利用しないで最高性能に迫る解析を行うSENNAが現れ、word2vecの分散表現やアルファベットや読みを入力としてテキスト分類タスクでベンチマークのbag-of-wordsモデルを超える性能を示したりと大変注目を集めています: [1103.0398] Natural Language Processing (almost) from Scratch [1408.5882] Convolutional Neural
大規模分散計算環境のApache Sparkは、HadoopのMacReduceに比べてメモリ内で効率的に処理を行うことが特長で、機械学習、ストリーム処理、グラフ解析、SQLデータ分析などの機能ライブラリがあります。Spark自体はScala言語で実装されていますが、Scalaの他にPython用のAPIや対話的なシェルも用意されていて、どちらの言語でもプログラミングや動作確認が可能です。 動作確認は簡単にできて、Java6以上がインストールされていれば、Downloadsページから適当なビルド済みパッケージをダウンロードして解凍すると、ScalaまたはPythonの対話的シェルが起動できます: $ curl -O http://d3kbcqa49mib13.cloudfront.net/spark-1.0.2-bin-hadoop1.tgz $ tar zxf spark-1.0.2-b
日本語と中国語(簡体字)に対応した形態素解析エンジンRakuten MAが公開されています。JavaScriptで実装されていてnode.jsでアプリケーションのように使うことも、ブラウザ上で実行することもできます。Apacheライセンスで公開されているので商用利用も可能です。 TinySegmenterはJavaScriptの少ないコード量で日本語分かち書きを実現した先駆的なソフトだと思いますが、Rakuten MAは現代日本語書き言葉均衡コーパス(BCCWJ)やChinese TreeBank (CTB)などから学習したモデルを同梱していて、品詞情報も出力できます。オンライン学習モデルを採用していて、新たにコーパスを用意してモデルを作ったり、サンプルコーパスを追加して再学習した結果を即座に反映することも簡単にできます。 実行するにはGithubからコード一式をダウンロードしてnode.
brown-clusterは、単語をテキスト中に出現する傾向に基づいて機械的に分類するBrownらが提案したクラスタリングアルゴリズムのC++実装です。Brownの単語クラスタリングの結果を機械学習の素性として利用すると、固有表現抽出や単語分割などのタスクで効果があることが知られています: Name Tagging with Word Clusters and Discriminative Training by Scott Miller, Jethran Guinness, Alex Zamanian (2004) Semi-Supervised Learning for Natural Language by Percy Liang (2005) 単語や文書をクラスタリングする際に広く用いられる LSA (Latent Semantic Analysis) や LDA (Latent
機械的にことばの意味を汲み取って別の言語で表現する機械翻訳は、人工知能や自然言語処理が目指す究極の目標の一つとされて、古くから研究されてきました。近年では、大量の対訳データに基づいて統計的な言語モデルや機械学習アルゴリズムを利用する統計的機械翻訳が主流です。単語や句の単位で二カ国語を対応させる比較的表層的で頑健な方法から、文の構文的な関係が表現された構文解析木や、複数の構文解析木をコンパクトに表現した構文解析森の状態から変換規則を求めるような、文法を利用した高度な方法まで様々提案されています。統計的機械翻訳の手法は、たとえ同じ言語であっても、たとえば話し言葉から書き言葉に変換するといった言い換えの用途にも利用できます。 統計的機械翻訳システムのオープンソースとしてはMosesが有名ですが、cicadaは最新の研究成果が様々盛り込まれていながら、とてもまとまりがあって使い勝手の良い実装です。
テキストから人名や地名など内容を特定するような箇所を取り出す固有表現抽出や、名詞句や動詞句などのようにかたまった単語の列を求めるチャンキング、単語の品詞を特定する形態素解析など、自然言語処理の様々なタスクでCRF(Conditional Random Fields)の機械学習アルゴリズムが利用されています。 CRFSuiteはCRFの学習とテスト実行を高速に行うオープンソースの実装で、CRF++と並んで広く利用されています。メモリ使用量を抑えるよりも処理を高速に行う実装を目指していて、効率的なオンライン学習のアルゴリズムであるAveraged PerceptronやPassive Aggressive、AROW (Adaptive Regularization Of Weight Vector)なども利用することができます。他のオープンソースと比較したベンチマークテストの結果を見ると、訓練
brat (brat rapid annotation tool)は固有名・イベント抽出、共参照解析、チャンキング、構文解析などの様々なタスクに利用できるテキストアノテーションを表示・編集するツールです。数多くの機能を備えていて、右の画面のように表示が美しく、操作もマウスを使って直観的に行うことができ、ショートカットのキーボード操作も設定できるようになっているなど大変使いやすくなっています。 bratは共同作業も行えるようにサーバクライアントのシステムになっていて、サーバはPythonで、クライアントはJavaScriptで書かれています。セキュリティ面からApacheサーバなどを通して利用することが推奨されていますが、次のようにして簡単に起動することができます: $ curl -O http://weaver.nlplab.org/~brat/releases/brat-v1.3_Cru
UniDicは比較的短い単位で語を分割する形態素解析システム用の日本語辞書です。標準的な表記や音声言語処理に適した発音の情報などが付けられていて、例えば「すもも」に対して標準的な表記である「李」、「言う」の発音として「ユウ」ではなく実際の発音に近い「ユー」が記述されています。以前から再配布できない形では公開されていましたが、最近、BSD/LGPL/GPLのトリプルライセンスでMeCab用の辞書unidic-mecabがリリースされました: UniDic プロジェクト日本語トップページ - OSDN unidic-mecabのバイナリ版をMacPortsのportにパッケージして、MeCabで使えるようにしてみました: $ sudo port selfupdate $ sudo port clean mecab-utf8 $ sudo port install mecab-utf8 +uni
日本語係り受け解析器CaboChaの最新版0.65が公開されました。学習の素性が追加されて精度が向上していたり、KNBCが学習データに入っていたり、と強化されているようです: Taku Kudo on Twitter: "cabocha 0.65 を公開しました。最近の素性を入れることでかなり精度が向上しました。またトーナメントモデルもサポートしました。(デフォルトはSRです) http://t.co/l51qZIkR" 元々使いやすくて機能も豊富でしたが、係り受け学習が高速化されて、再学習ができるようになるなど、さらに進化しています。 一方、「係ろっと(kakarot)」は、全域木探索を行う実験的な日本語係り受け解析システムです。精度はCaboChaに及ばないようですが、作者のブログを見ると、構想から調査、設計、実装、公開までがとても短期間にされていて、精力的に改善されている様子です。最
日本語の係り受け解析器といえば、KNPやCaboChaが有名ですが、J.DepPは線形分類器を用いて大規模な対象を非常に高速に、また高精度に解析できることが特長です。2009年末に公開されてから着実にバージョンアップされていますが、ビルドの方法が簡単になって、モデルの学習機能が追加されたことで大変使いやすくなっています。また、J.DepPは線形分類器のpeccoやopalを利用していますが、ベースの分類器が高速化されたことが、そのまま解析器の性能向上につながっているようです: ソフトウェアの更新も一人旅になってきた - ny23の日記 このJ.DepPをMacPortsとして登録しました。デフォルトの状態でjdeppをインストールすると、jumandicを参照するMeCabを組み込んだ解析器と、解析済みのブログコーパスであるKNBコーパスを対象とした学習モデルが利用できるようになります:
Ruby on Railsが世に出た頃、紹介ビデオで使われていたテキストエディタのTextMateですが、GNUライセンスのフリーソフトとして公開されていました。Railsのscaffoldやconvention over configurationの設計思想と、TextMateの優れた入力補完機能、Mac OS Xの先進性と視覚的センスの良さが合わさって、MacでTextMateを使ってRailsを組むのがとても格好がよく、Mac OS XでWebプログラミングすることを一般に広めるきっかけになったのではないかと思います。 さっそくtextmate2のportがMacPortsにも登録されていました。あいにく32ビットのアプリケーションであるため、依存ライブラリもuniversalビルドする必要があって、コンパイルに時間がかかります。githubにビルドされたバイナリのアプリケーションが
昨年米国で開催されたTAC 2011 RTE-7では、NECのシステムが第一位を獲得したそうです: NECのテキスト含意認識技術がNIST主催の評価タスクで第一位を獲得(2012年4月13日): プレスリリース | NEC IKOMA at TAC2011: A Method for Recognizing Textual Entailment using Lexical-level and Sentence Structure-level features このシステムのテキスト解析にはSENNA (Semantic/syntactic Extraction using a Neural Network Architecture) というツールが利用されています。SENNAは、多層ニューラルネットに基づいて、品詞タグ付け、チャンキング、固有名抽出、意味役割ラベリング、構文解析といった様々
Façadeは、人工知能の技術を応用したドラマ仕立てのゲームです。画面上で自然な会話を繰り広げる二人のキャラクターに対して、ユーザがことばをキー入力すると、それが解釈されてシナリオが進んでいきます。ゲームがフリーウェアとして公開されているので、実際に試すことができます。Javaで動いているようなのですが、Mac版は手元のLionマシンで起動できませんでしたが、Windows版は動作確認できました。 http://www.interactivestory.net/download/ また、YouTubeにゲームの様子をキャプチャした動画がいくつも登録されています。 Façadeの自然言語処理に関して論文が発表されています。ユーザが入力したテキストは、ルールに基づいて談話行為に変換されます。談話行為として、賛成、感謝、謝罪、批判など20個以上が用意されています。変換ルールは、独自のテンプレート
opalは、自然言語処理に適したオンライン学習器で、二値の素性に特化して大規模な学習を非常に効率的に行います。線形または多項式カーネルが利用できて、ホームページに性能比較表が載っていますが、どちらの方式でも驚くほど高速かつ省メモリで学習とテストができます。線形学習器といえば、LIBLINEARが高速なことで有名ですが、これをも遥かに凌駕する性能です。 opal - C++ header library of online learning with kernel slicing#Performance comparison このopalをMacPortsに登録しました。ただし、OPALという物理演算エンジンのパッケージがすでに登録されていたため、MacPorts上ではopal-ml (Machine Learning) という名前になっています。最新バージョンのopalは、コンパイル時にオ
ソースコードを印刷するときに、a2psコマンドを使ってテキストをPostScriptに変換する方法がありました。近頃はあまりソースコードを印刷することもなくなりましたが、最近のコラムで、GNU enscriptを使ってソースコードのキーワードに色付けして印刷する方法が解説されていました: enscriptでソースコードをカラー印刷 - 新・OS X ハッキング!(29) | マイナビニュース ただし、ここで紹介されている enscript は残念ながら日本語などのマルチバイト文字に非対応のようです。いまだと同様のことを様々な方法で可能でしょうが、Emacsを使う場合だと、たとえば次の方法でカラーのきれいな出力が得られます: Emacs から、PDFファイルを作ってプレビューする。(等幅印刷です) 上で公開されているpdf-preview.elは、Carbon Emacs用の設定になっている
NTCIRは、日本語などのアジア言語を中心とした情報検索・アクセス技術に対する評価型ワークショップです。国立情報学研究所の主催でおよそ1年半おきに開催されており、先頃第9回のワークショップ成果報告会がありました。今回初めて、テキスト推論認識のRITEタスクが行われ、成果報告論文がすでに公開されています: NTCIR Workshop 9 : Online Proceedings, Evaluation Results#RITE なお、Javaで記述されたRITE-SDKツールも公開されていて、Eclipseやコマンドラインでサンプルコードを手軽に試すことができます: テキスト含意認識システムRITE-SDK - 自然言語処理 on Mac 成果報告会ではいくつか口頭発表がありましたが、なかでも印象的だったのは、中国語で抜群に高い性能を示した米国アイオワ大学の内容でした: UIOWA at
NTTとPFIから、大規模データ分析基盤のJubatusがオープンソースとして公開されました。 http://preferred.jp/2011/10/jubatus.html ホームページのチュートリアルには、動作環境としてLinux2.6以降とありますが、Macでも動きましたので、MacPortsとしてまとめてみました。ただし、まだ動作検証をあまりしていないので、おかしなところがあるかもしれません。 なお、Debian Linuxでのインストール手順の記事も参考になりました。 Jubatusのインストールと若干の動作確認 - kuenishi's blog インストールにあたって必要なソフトがいくつもありますが、そのうちの pkgconfig, py-msgpack, msgpack, libzookeeper, ux-trie, mecab-utf8のportはすでにあり、今回新たに
窓の森で紹介されていましたが、SeekAnserという日本語のクイズに答えるJavaプログラムが公開されています。 【レビュー】形態素解析とWeb検索を組み合わせて日本語のクイズを解くプログラム「SeekAnser」 - 窓の杜 Project Web of SeekAnser -日本語クイズ解答プログラム- on OSDN Web space クイズに答えるというと、TVクイズ王に勝ったIBMのWatsonが大変話題になりました。なお、Watsonの技術は医療診断に応用されるそうです。 クイズ番組に挑戦した IBM Watson - Japan http://www-06.ibm.com/jp/press/2011/10/2701.html 質問応答システムは、評価型ワークショップのTRECのQAタスクや、NTCIRのQACなどを通じて盛んに研究されてきました。書籍ではコロナ社から出てい
MacPortsはOS標準のライブラリに頼らず独自にソフトをインストールしようとする傾向にあります。そのためちょっとしたアプリケーションを入れようとしただけで、依存関係にあるソフトを芋づる式にインストールし始めて、思わぬ時間がかかることがあります。最近のマシンはハードディスク容量が潤沢で処理速度が高速だといっても、ディスクが無駄に使われたり延々待たされると困ります。最近人気のHomebrewはOS標準のライブラリを出来るだけ利用して重複するソフトをインストールしない方針になっています。そのためソフトのインストールが軽いというのが人気の一因になっているようです。 しかしながら、MacPortsで独自ライブラリを使っているのには歴史的な背景があります。最近のMac OSであれば比較的新しいバージョンのオープンソースソフトウェアが色々と組み込まれていますが、以前のOSではそうしたソフトウェアがな
情報通信研究機構(NICT)が開発した意見(評価表現)抽出ツールがオープンソースとして公開されました。このツールは、テキスト中に意見や評判・評価が表現されているかどうかを判定して、評価表現抽出、評価タイプ分類、評価極性判定、評価保持者抽出を行います。テキストの解析にはJUMANやKNP、評価表現や評価保持者の抽出、評価極性分類にCRF、評価保持者の判定や評価タイプの分類にSVMといった機械学習手法が使われています。配布物の中にはタグ付けに関する詳細な説明資料なども含まれていて、とても参考になります。 なお、ツールに付属しているモデルや辞書のデータはお試し用の小さなサンプルですが、高度言語情報融合フォーラム(ALAGIN)を通じて大規模なモデルデータが入手できます。このデータを入手するにはALAGINに入会して利用許諾契約に締結する必要がありますが、データ自体は無料で商用利用も可能です。 配
RITEはテキスト間の含意(推論)などを認識するテキスト理解システムのためのベンチマークタスクで、国立情報学研究所が主催する第9回NTCIR評価ワークショップのタスクになっています。 RITEは、Recognizing Inference in TExtを表していますが、こちらの元となったRTEはRecognizing Textual Entailmentの頭字語です。そもそもentailmentは論理的帰結として必然的に成り立つ関係を指しますが、RTEやRITEタスクでは、必ずしも成り立つ訳ではなくても可能性の高い関係や、常識的に成り立つと見なせる関係などの推論的な内容を扱います。2つのテキストの一方から他方が言えるかどうかを判定するテストは、RTEの他にも、FraCaS test suiteやAQUAINT KB Evalなどが計算言語学(形式意味論)の枠組みで提案されています。ちなみ
機械学習手法に基づくテキスト分類は十分な学習データがあれば高い精度が期待できますが、分類ラベルを人手でつける作業に手間がかかります。そこで、効率的に分類器を学習させる手法として、効果的な分類対象を優先的にラベル付けさせる能動学習(active learning)というアプローチがあります。 DUALISTは、アノテータに対象のラベル付けと同時に、素性であるキーワードが適切かどうかの判定を委ねる能動学習システムで、7月に開催されるEMNLP 2011に採択された論文で提案されており、実装も公開されています。 Google Code Archive - Long-term storage for Google Code Project Hosting. DUALISTのインストールと実行は簡単です。システムはJavaで実装されていて、機械学習パッケージのMALLETが同梱されています。他に、W
最新版のSolr/Luceneで日本語を扱う場合には、文字列を2文字ずつ切り出すCJKAnalyzerもありますが、MeCab相当の機能を持つlucene-gosenを使うことができます。 http://code.google.com/p/lucene-gosen/ LuceneでMeCabの機能を使う場合、Senが有名でしたが、残念ながら現在はメンテナンスがされていないようです。 Senの入手方法 | 関口宏司のLuceneブログ lucene-gosenをSolrで使うためには、すでにapache-solr-3.2.0が展開されているとして: $ svn checkout http://lucene-gosen.googlecode.com/svn/trunk/ lucene-gosen $ cp lucene-gosen/example/*.txt apache-solr-3.2.0
日本語の単語分割処理は、一般に、単語辞書と単語間連接の規則や学習データに基づいて行われます。オープンソースとして有名なものがいくつもあります。 KAKASI - 漢字→かな(ローマ字)変換プログラム JUMAN - KUROHASHI-KAWAHARA LAB chasen legacy -- an old morphological analyzer http://mecab.sourceforge.net/ これらのツールは主に新聞記事のような一般的なテキストが対象です。単語辞書に登録されていない語は未知語として処理されますが、特定分野のテキストを対象として解析精度を保つためには、専門用語や新語などを適宜登録する必要があります。 他方、文字間に単語境界があるかどうかを機械学習の2値分類問題として解く手法があり、ツールも公開されています。 KyTea (京都テキスト解析ツールキット) 次
HadoopにはWordCountのサンプルがついてきますが、英語テキスト用です。日本語を対象にする場合、MeCabを使って単語分割を行いたいところです。 MeCabにはSWIGのJavaバインディングが用意されていて、JNI経由でMeCabの機能を使えるようになります。このときのMeCabのエンコーディングはUTF-8が前提となります。 http://mecab.sourceforge.net/bindings.html このmecab-javaのMacPortsを現在登録申請中です。これを使うと、/opt/local/lib/libmecab-java.dylib と /opt/local/share/java/mecab.jar がインストールされることになります。 $ sudo port selfupdate $ sudo port install mecab +utf8 $ su
HadoopのMacPortsが登録されたので、次のように、最新の状態に更新すると利用できます。 $ sudo port selfupdate ... $ sudo port install hadoop ---> Fetching hadoop ---> Verifying checksum(s) for hadoop ---> Extracting hadoop ---> Applying patches to hadoop ---> Configuring hadoop ---> Building hadoop ---> Staging hadoop into destroot ---> Installing hadoop @0.20.203.0_0+pseudo ---> Activating hadoop @0.20.203.0_0+pseudo ****************
MacPortsでインストールしたOpen JTalkの合成音声を、Juliusで音声認識させてみます。マイクのないMacでJuliusをテストするという想定です。 まず、MacPortsでopen_jtalk, julius, ssrcをインストールします。 $ sudo port install open_jtalk julius ssrc 次に、open_jtalk_demoでテキストから合成音声ファイルを作ります。 $ open_jtalk_demo 音声認識技術の性能を試してみましょう 入力した文の音声ファイルは/tmpに作られます。open_jtalk_demoを終了させずに、別のShell上などでssrcを使って、音声ファイルのサンプルレートを16kHzに変換します。 $ ssrc --rate 16000 /tmp/open_jtalk_demo-*.wav sample.
次のページ
このページを最初にブックマークしてみませんか?
『自然言語処理 on Mac』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く