この記事は abicky.net の MeCab ソースコードリーディング私的メモ(形態素解析編) に移行しました
こんにちは、買物情報事業部の荒引 (@a_bicky) です。 前回、「検索結果の疑問を解消するための検索の基礎」で単語単位でインデキシングする前提で説明しましたが、今回は文などを単語単位で分割するために使う技術である形態素解析について触れます。 形態素解析器には色々ありますが、中でもメジャーと思われる MeCab の仕組みについて説明します。 MeCab の解析精度を上げるために辞書に単語を追加したことのある方もいると思いますが、動作原理を理解することで単語を追加する際に適切な生起コストを設定できるようになったり、学習の際に適切なパラメータを設定できるようになったりするはずです。 なお、MeCab は汎用テキスト変換ツールとしても使用できます が、簡単のため MeCab + IPA 辞書のデフォルト設定前提で説明します。 アジェンダ 形態素解析とは MeCab における最適な解析結果の推
MeCab 用の新語辞書 mecab-ipadic-neologd を公開しました Tweet [NLP] 日本語の文書を機械的に処理しようと思った時に、ほとんどの人が MeCabとIPADIC(IPA辞書)の両方、または、どちらかを使うことになります。 IPADICはとてもよく出来ていますが、更新されないまま年月が過ぎているので、例えば2015年3月上旬に急に流行ったような言葉は収録していません。そのため、今日生まれたような新しい文書(例、Apple Watch発売)を解析する時に困ります。困らない人もいますけど、僕は困ります。 その課題に対処するために、日本全国津々浦々、自然言語処理に関わる全ての人は独自にMeCabの新語辞書を作って対応しているわけです。その際に元データとして使われることが多いのは Wikipedia 日本語版やはてなキーワードなどです。 困ったことに、新語辞書を生成
Functions That Test Spatial Relations Between Geometry Objects
サイトの構築。作品の販売。ブログの投稿。この他にもさまざまな機能があります。 ログイン サイトをはじめよう 非公開サイト このサイトは現在プライベート設定になっています。
(インストールの仕方などはほかの人がいっぱい説明してくれているので割愛) どうやら標準の辞書だけだと限界があるようので、以下の記事などを参考に 「wikipediaとhatenaキーワードをユーザ辞書として利用する」 ということをやってみました。 http://d.hatena.ne.jp/code46/20090531/p1 http://www.mwsoft.jp/programming/munou/mecab_hatena.html http://deepneko.dyndns.org/kokotech/2009/06/mecabwikipedia.html 作ったのは以下の2つのスクリプト。 webからデータを取ってきて、csv作成コマンド、辞書作成コマンドを呼び出すshell (convWebWordsToDic.sh) #!/bin/sh CSV=../data/words.c
mecabっていう日本語構文解析プログラムがあります。 今日は、それを使って「日本語を自動解析して用語を抜き出し、コピペ文を自動生成するスクリプト」の作り方を学習します。 必要なもの・root権限で動かせるlinux/unixなマシン。 ターミナルで動作します。面倒くさいGUIなんか作りません。シェルスクリプト万歳! ・yumかapt mecabをインストールするのに必要になります。 レポジトリとかは知らんけど、yum install mecabとかapt-get install mecabとかしてmecabを入れてください。 1. mecabを使って日本語から固有名詞っぽいものを抜き出す1行シェルスクリプト。超簡単です。コピペでも動く多分。 これをmecab_extract.shって名前で保存して実行属性を付けよう。 #! /bin/bash cat /dev/stdin |mecab|
顔文字を形態素解析? テキストコミュニケーションにおける「身振り手振り言語」とも言われる顔文字は、目・鼻・口などの顔のパーツから構成されています。ところで顔文字をパーツごとに分割し、パーツの種類(品詞)を推定するというタスクは、形態素解析と同じ問題に帰着します。そこで今回私は、形態素解析器として使われているMeCabを用いて、顔文字を形態素解析してみました。 デモ まずはデモを試してみてください。 http://www.haroperi.info/cgi-bin/emoticon.cgi 実行結果 未知語処理が苦手なようで、なかなか正確な形態素解析は行えませんが、教師データを解析してみると、以下のように綺麗に分割・品詞付与されます。 詳細 詳細はhttp://www.haroperi.info/emoticon/mecab.htmlに書きました。これ以上はどこにも書いていません。 今後、M
DMAKI氏による MeCab の Perl モジュールが CPANにアップロードされたようです。SWIG で生成されたものより高速に動作するようです。こんなに差が出るとは正直驚きです。 MeCab::Node の iterator をまわして要素を取りだす処理は、SWIG の場合 tie hash になったり、正直遅いと想像していたのですが、お見事です。 mecab 標準の mecab-perl より高速とのことで、モジュールの安定性を待っている間にすっかり忘れてしまった Text::MeCab ですが、突然思い出したので使ってみようかと思いインストールしてみたところ、make test にてエラー。 う〜ん・・・たぶん x86_64 環境だからだろうと推測し情報集め。 PERL_DL_NONLAZY=1 /usr/local/bin/perl "-MExtUtils::Command:
TinySegmenterはJavascriptだけ書かれた極めてコンパクトな日本語分かち書きソフトウェアです。 わずか25kバイトのソースコードで、日本語の新聞記事であれば文字単位で95%程度の精度で分かち書きが行えます。 Yahoo!の形態素解析のように サーバーサイドで解析するのではなく、全てクライアントサイドで解析を行うため、セキュリティの 観点から見ても安全です。分かち書きの単位はMeCab + ipadicと互換性があります。 デモ 日本語の文章を入力し、解析ボタンをクリックしてください。 ダウンロード TinySegmenterはフリーソフトウェアです. 修正BSDライセンスに従って本ソフトウェアを使用,再配布することができます. Download TinySegmenter version 0.2 使い方 <script type="text/javascript" src
「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 BIGLOBEのサービス一覧
突然ですが,mecabの辞書 (mecab-ipadic) をデフォルトのまま使って,mecab意外と使えねぇとか文句言ってる悪い子はおらんかね? mecab-ipadic は比較的お行儀のよい日本語をベースに作られているので,そのままでは web上の口語文体のテキストはうまく扱えないことがあります。本来は教師データを用意し,学習させるといった手法を使うのが正攻法だと思いますが,とりあえず名詞を充実させるだけでも実用度はだいぶ上がるでしょう。 人間の話す言語には,動詞の語幹や名詞には日々新しく語彙が増えるけど,助詞や活用のルールは簡単には変化しない,という特性があります。特に「いま最もつぶやかれている単語ランキング」といった集計をするような場合は,名詞の範囲の切り出しさえ間違えなければそれなりの結果を出せることも多いのです。 ただ,辞書への単語追加はここにある通り簡単にできるのですが,単語
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く