一定期間更新がないため広告を表示しています
![Kuromojiを調べてみた | @johtani の日記](https://cdn-ak-scissors.b.st-hatena.com/image/square/2302e44c95c7e474fefb218540004f95dc47a4bb/height=288;version=1;width=512/https%3A%2F%2Fimaging.jugem.jp%2Ftemplate%2Fimg%2Fjugem_og-image.png)
-r --rcfile 使用するリソースファイルを指定する リソースファイルとは、辞書ディレクトリに入っている「dicrc」ファイルを指します。 試しにシステム辞書の「dicrc」ファイルをコピーして、「dicrc2」というファイルを作り、その中の「; simple」の「EOS」を「eos」に書き換えます。するとこんな風になります。 // リソースを指定せずに実行 $ echo テスト | mecab -O simple テスト 名詞-サ変接続 EOS // リソースを改変したdic2に指定して実行 $ echo テスト | mecab -r dicrc2 -O simple -d /usr/local/lib/mecab/dic/naist-jdic テスト 名詞-サ変接続 eos 我が家の環境では、システム辞書ディレクトリをカレントディレクトリとした状態にするか、「-d」でシステム辞書
以前,id:code46さんのMeCabの辞書にはてなキーワードを追加しようの記事を見て,ウヒョースゲーと思って入れたのですが, 最近になって,全キーワードを名詞に入れてるとよろしくないなと気付き, いまちょっとつまづいてる県名などの地域名だけ省けるようにした. 修正するのは,createDict.pyのみです. # -*- encoding: utf-8 -*- import sys import re import MeCab # MeCabを利用する m = MeCab.Tagger ("-Ochasen") #数字四桁が入ったキーワードは役に立ちませんので検出して飛ばします。 year = re.compile("[0-9]{4}") #驚くべきことにはてなキーワードには%00というキーワードがありますが、 #これがcsvとして提供されているダンプではヌル文字になっているのでシステ
品詞IDの定義 $Id: posid.html 161 2008-02-03 09:58:46Z taku-ku $; 概要 出力される素性(品詞)に任意の数値ID を付与することができます. 通常, 素性は文字列として表現されますが, 機械処理には向いていません. 数値ID に変換することで, 機械処理が容易になります. 素性にどの ID を割りあてるかは, ユーザが自由に定義することができます. 設定ファイル 配布辞書のディレクトリにある pos-id.def を変更します. 1行が1つのマッピングルールに対応します. 各パターンは以下のフォーマットで 記述します. マッチパターン ID という形式で記述します. マッピングルールは先頭から順に走査されて 最初にマッチしたものが使われます. マッチパターンでは簡単な正規表現がを使うことができます. *: すべての文字列にマッチ (A
$Id: dic.html 161 2008-02-03 09:58:46Z taku-ku $; 概要 辞書への単語追加には, 二つの方法があります. システム辞書への追加 ユーザ辞書への追加 システム辞書への追加 辞書更新が頻繁でないときや, 解析速度を落としたくない時は, 直接 システム辞書を変更するのがよいでしょう. 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: バイナリ辞書の文字コード 例: u
そもそも、マルコフ連鎖とは何なのか?全く聞いたこともなかった。そして、文章を要約するのはとっても高度なことだと思っていて、自分のレベルではその方法を、今まで思い付きもしなかった。 しかし、以下のようなシンプルなRubyコードでそれが出来てしまうと知った時、目から鱗である...。一体、何がどうなっているのだ?コードを追いながら、マルコフ連鎖を利用するという発想の素晴らしさを知った! 作業環境 MacBook OSX 10.5.7 ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0] mecab utf8環境でインストール済み マルコフ連鎖に出逢う rssを流し読みしていると、以下の日記に目が止まった。(素晴らしい情報に感謝です!) MeCabを使ってマルコフ連鎖 一体何が出来るコードなのか、日記を読んだだけではピンと来なかっ
3年ぐらい前に欲しいなーと思っていたMeCabのPHPモジュールが最近リリースされたようです。DBから取り出したレコードごとに形態素解析したいときなどはPHPから呼び出せると便利。 » Page2 MeCab extension 手元のマシンはmecabが0.90だったのですがconfigure時にmecab_new2のところでエラー。 configure: error: wrong MeCab library version or lib not found.[mecab-users 86] Re: C ライブラリで “Undefined symbol” となる関数がある 既知の問題だったので最新の0.91をコンパイルし直したらインストールできました。 サンプルのコードはソースの中にもありますがよりシンプルな例を以下に。 <?php dl('mecab.so'); $mecab = me
クデラボ -KudeLab- » PHPでMeCabを使って形態素解析をするときのメモ PHPでMeCabを使う時は、MeCab extensionを用いりますが、あえて(か、必要にせまられて)extension moduleを使わないで、MeCabを使う方法を示されています。 $descriptorspec = array( 0 => array(“pipe”, “r”) , 1 => array(“pipe”, “w”) ); $process = proc_open(“/usr/local/bin/mecab”, $descriptorspec, $pipes); if (is_resource($process)) { fwrite($pipes[0], $text); fclose($pipes[0]); $result = stream_get_contents($pipes[
php_mecab-0.3.0.tgz PHP 5.3/6.0に対応。 PHP6のUnicode文字列とC文字列の相互変換をするエンコーディングを指定するためのphp.iniディレクティブmecab.internal_encodingを追加。 指定できる値はICUが対応しているエンコーディング名で、デフォルト値はUTF-8。 PHPスクリプト内ではini_set()のほか、mecab_set_encoding()関数やMeCab::setEncoding()メソッドで指定可能。 ini_get(), mecab_get_encoding(), MeCab::getEncoding()で現在の値を取得することもできる。
MeCabは形態素解析のためのソフトウェアです。日本語を分かち書きするために使われるものとしては最も人気の高いものだと思われますが、チャットや掲示板に書き込まれるような崩した日本語や、正しく書かれた日本語でも新語を期待した通りに分かち書きしてくれないことがあります。これはMeCabの内部で使われている辞書が一般的な言葉を情報源としているわけではないことに関係があります。MeCabというか、より一般的な話ですが以下のような認識が一般的かと思われます。 というのも、一番広く使われているであろう自然言語処理技術は形態素解析(単語分かち書き、と言ったほうがいいのかもしれない)であろうが、これは現在99%くらいの精度になっていて、すでに人間がやるより遙かに高精度で行えるのだが、これだけ高い精度が出せるのは新聞記事を相手にしたときだけであって、それは新聞記事をコーパスとして用いる機械学習により形態素解
CentOSにmecabとmecab-ipadicとphp_mecabをインストールしました。 CentOSのyumパッケージにmecab系がなかったので、自分でソースからビルドしました。 mecab のインストール 下記サイトからmecabのソースコードをダウンロードします。 http://sourceforge.net/project/showfiles.php?group_id=177856 tar zxfp mecab-0.97.tar.gz cd mecab-0.97 ./configure --with-charset=utf8 make sudo checkinstall sudo rpm -i /usr/src/redhat/RPMS/i386/mecab-0.97-1.i386.rpm mecab-ipadicのインストール 下記サイトからmecab-ipadicのソース
$Id: soft.html 161 2008-02-03 09:58:46Z taku-ku $; 概要 MeCab 0.90 よりソフトわかち書きの機能が付きました. ソフトわかち書きは 入力文に対して可能なすべての形態素列を周辺確率付きで出力する機能です. 全文検索のインデキシングに使うことで,複合語の単語分割の曖昧性等を 解決することができます. ソフトわかち書きの詳細については論文をご参照下さい. 全形態素の出力 MeCab はデフォルトで最適解のみを出力します. -a オプションを指定すると 最適解ではなく, ラティス中の全形態素を出力します. % mecab -a 東京都庁 東京 名詞,固有名詞,地域,一般,*,*,東京,トウキョウ,トーキョー 東 名詞,固有名詞,一般,*,*,*,東,ヒガシ,ヒガシ 東 名詞,固有名詞,地域,一般,*,*,東,ヒガシ,ヒガシ 東 名詞,固有
第80回知識ベースシステム研究会を開催したが,二日間で58名の方々に参加して頂き,積極的に議論に加わって頂いた.この場を借りて,参加してくれた方々に感謝したい.大変遅くなった(爆)が,Googleの工藤拓氏による招待講演「大規模テキスト処理を支える形態素解析技術」の概要を,このブログで報告しておきたい.工藤氏の専門分野は統計的自然言語処理と機械学習であるが,日本語形態素解析エンジンMeCabの開発者であり,他にも自然言語処理関連の有益なツールや,Webベースの日本語入力を可能にするAjax IMEのようなユニークなサービスを提供しているなど,時代をリードする研究開発者の一人である.彼の活動に興味があれば,彼のブログ「きまぐれ日記」は必見だろう. なお,当日は弊社側の不手際で,予定していた工藤氏の重要なデモをおこなうことができなかった.弊社はネットワーク会社であるにもかかわらず,ネットワーク
こんにちは satoです。mecabのユーザ辞書を追加したのですが,いろいろはまったので誰かがはまった時のためにメモっておきます。 1)品詞IDの取り方 2)ユーザ辞書の追加方法 3)禁止語句とか独自の要素を付けたい csvファイルの最後に追加すればOK 4)context_id.cpp(88) [it != left_.end()] cannot find LEFT-... ってエラーが出る left-id right-id の文字コードが csvファイルの文字コードと違うのが原因 nkf --utf8とかで文字コードをそろえる 5)CHECK_CLOSE_FALSE(sysdic->isCompatible(*d)) sys.dic と ユーザ辞書の文字コードが違うと出るエラー utf8とUTF8は違うと判定されるのでutf-8と書く 6)追加した辞書に品詞IDが付かない or 65
さくらの500円レンタルサーバで MeCab を使う 2008-11-15-1 [Tips][Programming][NLP] さくらの500円レンタルサーバで MeCab を使うための手順。 「MeCabをPerlから使う」[2006-02-25-4]を参考に。 MeCab は日本語形態素解析器です。 日本語文を単語に切り分けてくれます。 - MeCab: Yet Another Part-of-Speech and Morphological Analyzer http://mecab.sourceforge.net/ ソースの入手は上記 URL から。 MeCab 本体のインストール まずは本体を入れなければ話になりません。 tar zxfv mecab-0.97.tar.gz cd mecab-0.97 ./configure --prefix=/home/USERNAME/op
こんにちは、山下です。 今年もどうぞよろしくお願い致します。 Webサービスを開発していると、特定のキーワードを自動でURLリンクにする処理が必要になることがあると思います。今回は、このキーワード自動リンク機能を形態素解析ツールMecabを使ってPHPで実装する方法を紹介したいと思います。 説明に入る前に少し補足しておくと、Trieの実装であるDouble-Array処理だけ利用したいのであれば、MecabからDouble-Array処理の部分を切り出したDartsというライブラリがあります。しかし、なぜMecabを使うかというと、PerlだとDartsのバインディングが公開されているのですが、現時点でPHP版はありません。また、最近のLinuxディストリビューションでは、Mecabのパッケージが最初から用意されているため、より簡単に利用できると思ったからです。 それでは、順を追って説明
2007.08.20 「Yahoo!の形態素解析をMeCabで無理やり再現してみる」を試してみて カテゴリ:ことばの処理 Yahoo!の形態素解析をMeCabで無理やり再現してみる を読む。 MeCabで形態素解析器を作りたい場合は以下の二つの言語リソースが必要です。 1. 辞書 (単語と品詞のペアの集合) 2. 入力文と、それに対応する正解出力ペア(正解データ) 学習させるときには、辞書と、正解データを用意しなきゃならない。これが面倒だから、なかなか自作の辞書を作る気にならない。Wikipedia のデータをダウンロードすれば、大量のテキスト文章は得られるけれども、正解出力を手作業で作るのは大変だし、元辞書も作らなきゃならないから、不可能に近い。 じゃわ、正解出力をちゃんと手作業で作るのではなくて、Yahoo! API の 日本語形態素解析Webサービス を使って得られた解析結果を擬似的
MeCabで形態素解析器を作りたい場合は以下の二つの言語リソースが必要です。 1. 辞書 (単語と品詞のペアの集合) 2. 入力文と、それに対応する正解出力ペア(正解データ) 現在公開している mecab-ipadic は、ipadicとRWCPコーパスという正解データを使っています。 ここから分かるとおり、少なくともMeCabを使う場合は、コスト値を丹念にチューニング するといった職人芸は要りません。形態素解析への入力文とそれに対応する(理想)出力 があればコスト値を機械学習的なアプローチで構築することができます。 さらに、正解データを人手で作る必要は必ずしもありません。 すなわち、Yahoo!の形態素解析器の出力結果を「擬似正解」とみなして MeCabの学習プログラムを走らせれば、Yahoo!の出力を高い精度で再現できる MeCab用辞書を作成することが原理的に可能です。 ふだんはあま
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く