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');
それと助詞で分けてから、正規表現でさらに分けるという感じのものも書いてみました。これについては別エントリで書く予定です書きました。
簡易形態素解析
関連記事
- JavaScript で人工無脳を作る
- マルコフ連鎖で文章生成
- JavaScript で人工無脳 マルコフ連鎖で返答
- 形態素解析もどきで単語の頻出度を調べる JavaScript
- ブックマークレットで形態素解析もどき
- 「形態素解析もどき」を MECAPI と比較してみる
形態素解析もどきを使って作ったもの
- Feed2Cloud - フィードからタグクラウド ブラス べつやくメソッド
-
フィードを読み込んで、その文章を解析して、単語っぽいものをタグクラウドにして表示します。
おまけでべつやくメソッド付きです。正確には違うような気もしますが。 - Shuffeed
-
これもフィードを読み込んで、その文章を解析して、マルコフ連鎖で文章を自動生成しています。おまけで、生成した文章から適当に単語を選んで、Flickr の写真を検索して表示させています。
文章はかなり意味不明です。 - Mosaic text
-
これはフィードを読み込んで、それを解析、文章の自動生成して形態素毎に文字の色や背景色を適当につけて、モザイクっぽい感じにするものです。
モザイクにした意味はあまりないです。
より
ァ-ヶー
の方が良いかもです。
こことか勉強になります。
http://ash.jp/code/
変更しておきました。
ヵとヶが含まれていなかったんですね。
教えて頂いたサイトなどで勉強しないといけないですね。
文字コードのことなど良くわかっていませんので…。
「○○は政治がわからぬ」の出典を探していたらここに来ました。
メロスでしたか。
個人的には「々」は漢字扱いが良いかと思います。
数年前はGoogleさえ、この字の扱いがなっていなかった気がしますが・・・。
「々」については最初すっかり存在を忘れていました。
やはりこれも漢字に含めた方がいいですね。
後で追記しておきます。
ありがとうございました。