2006年07月18日

JavaScript で形態素解析もどき

JavaScript で形態素解析のようなものを。

totonの日記 - すべての漢字を取り出す正規表現
「すべての漢字を取り出す正規表現」をPHPで試す:phpspot開発日誌
これらの記事を参考にして JavaScript で漢字、ひらがな、カタカナ、英数字に区切ることをしています。

ただ、文字コード的にちゃんとできるのか、よくわかりません。Seesaa はShift_jis なのでおかしくなる場合もあるかも知れないです。

下のテキストエリアに文章を入力して解析ボタンを押すと解析結果が表示されます。解析というか、単純に改行で区切っているだけですが。

サンプルは青空文庫の太宰治 走れメロスの冒頭部分。


ここに解析結果が表示されます。

これを人工無脳に使って、簡単な解析をしながら、文章を生成できるようにしていきたい。

追記(2006-08-22)

コメントで教えて頂いた正規表現に変更しました。
ありがとうございます。
ちなみに前の正規表現の部分は

var re = new RegExp;
    re.compile("[一-龠]+|[ぁ-ん]+|[ァ-ヴー]+|[a-zA-Z0-9]+|[a-zA-Z0-9]+|[、。!!??()()「」『』]+|\n", 'g');

という感じでした。今回変更したのは

var re = new RegExp;
    re.compile("[一-龠]+|[ぁ-ん]+|[ァ-ヶー]+|[a-zA-Z0-9]+|[a-zA-Z0-9]+|[、。!!??()()「」『』]+|\n", 'g');

です。[ァ-ヴー] から [ァ-ヶー] に変更しました。

さらに追記(2006-08-23)

よくよく考えたら「ヵ」や「ヶ」は漢字として扱った方がいいような気がするので漢字の方に含めてみました。
[一-龠] から [一-龠ヵヶ] に。カタカナはまた [ァ-ヴー] に戻しています。

追記(2006-09-27)

コメントでもありました、「々」を漢字に含めるようにしました。それと「〆」も含まれていなかったので追加しておきました(walter さんありがとうございました)。

var re = new RegExp;
    re.compile("[一-龠々〆ヵヶ]+|[ぁ-ん]+|[ァ-ヴー]+|[a-zA-Z0-9]+|[a-zA-Z0-9]+|[、。!!??()()「」『』]+|\n", 'g');

それと助詞で分けてから、正規表現でさらに分けるという感じのものも書いてみました。これについては別エントリで書く予定です書きました。
簡易形態素解析

関連記事

形態素解析もどきを使って作ったもの

Feed2Cloud - フィードからタグクラウド ブラス べつやくメソッド

フィードを読み込んで、その文章を解析して、単語っぽいものをタグクラウドにして表示します。
おまけでべつやくメソッド付きです。正確には違うような気もしますが。

Shuffeed

これもフィードを読み込んで、その文章を解析して、マルコフ連鎖で文章を自動生成しています。おまけで、生成した文章から適当に単語を選んで、Flickr の写真を検索して表示させています。
文章はかなり意味不明です。

Mosaic text

これはフィードを読み込んで、それを解析、文章の自動生成して形態素毎に文字の色や背景色を適当につけて、モザイクっぽい感じにするものです。
モザイクにした意味はあまりないです。

posted by knit at 12:32 | Comment(4) | TrackBack(4) | 人工無脳
この記事へのコメント
ァ-ヴー
より
ァ-ヶー
の方が良いかもです。
こことか勉強になります。
http://ash.jp/code/
Posted by at 2006年08月22日 08:46
教えて頂いて、ありがとうございます。
変更しておきました。
ヵとヶが含まれていなかったんですね。

教えて頂いたサイトなどで勉強しないといけないですね。
文字コードのことなど良くわかっていませんので…。
Posted by knit at 2006年08月22日 21:37
初めまして。
「○○は政治がわからぬ」の出典を探していたらここに来ました。
メロスでしたか。
個人的には「々」は漢字扱いが良いかと思います。
数年前はGoogleさえ、この字の扱いがなっていなかった気がしますが・・・。
Posted by walter at 2006年09月25日 05:54
walter さんコメントありがとうございます。

「々」については最初すっかり存在を忘れていました。
やはりこれも漢字に含めた方がいいですね。
後で追記しておきます。
ありがとうございました。
Posted by knit at 2006年09月26日 13:54
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバック

形態素解析をお手軽に!
Excerpt: 「形態素解析」?あまり聞きなれない言葉だとおもいます。 非常に簡単にいえば、  ...
Weblog: Kazuhiro's Weblog
Tracked: 2007-02-12 00:50

形態素解析
Excerpt: 検索ワードに形態素解析を掛けてみた。 1. 検索ワードを形態素解析して検索する 2. 解析前のワードでもマッチングする(ソートに使用) この手法の特徴は 再現率※が高く、適合率※が低い。 検索結果..
Weblog: PHPマニュアル検索Blog
Tracked: 2007-03-20 23:18

Zend_Search 日本語アナライザー
Excerpt: Zend_Search_Luceneは日本語使い物にならない、と言ったばかりでしたが、 どうにか日本語でも検索できるように、しょうもないものを作りました。 文字種 (英数字、記号、平仮名、片仮名、漢
Weblog: ふらっと
Tracked: 2008-02-05 12:03

自動検出クラウド、似たようなサービス
Excerpt: またまた、NZとは関係なのですが 同じような考え方を持つ先駆者様が他にもいらっしゃったので、 ご紹介します。 ・1つめFabio Sasso さん(詳...
Weblog: NZ(New Zealand)好きですか? - New Zealand Infomation -
Tracked: 2008-08-09 20:30