ページ

ラベル program の投稿を表示しています。 すべての投稿を表示
ラベル program の投稿を表示しています。 すべての投稿を表示

2012-06-06

javascriptでテキストマイニング

ビッグデータとかなんだとか言われてるけれども、
統計解析をするのが企業だけじゃなくて、ユーザ側からしてもいいよねってことで
javascriptでテキストマイニングをしてみた。


テキストデータを分かち書きするためには、tinysegmenterを使わせてもらいました。

そこから、tfidf値で値付けをして、k-means++でクラスタリングをした。


javascriptで作ったついでにブラウザで試せるサンプルも作った。気軽にテキストマイニングを試してもらえるとうれしい。
サンプルアプリケーション  Text Mining(javascript)


コードは↓
github  textmining-js





リンク
tinysegmenter
Data Mining Algorithms In R/Clustering/K-Means
Introduction to Information Retrieval

2012-05-28

nodejsメモ

nodejsを使う上での簡単な基礎知識としてのメモ


nodejsについて

まずクライアントサイドで動作をするjavascriptをサーバ上で動作させる為のサーバ

nodejs
サーバサイドをjavascriptで扱うことができる。

内部ではjitコンパイラであるchromeのv8 VMが使われている。



npmについて

npm[Node Package Manager]
nodejs用のパッケージ管理システム。

簡単な使用方法

npm -g install hoge ←グローバルインストール
npm install hoge ←ローカルインストール



参考リンク

Node.js 日本ユーザグループ
npm - Node Package Manager


2012-05-21

vimメモ

カーネルなどのソースコードを読むために便利なvimplugin(ctagsも)。

ctags

ctagsはタグファイルを作成するもので、vimでタグジャンプできるようになる。

ctagsのインストール
pacman -S ctags

カレントディレクトリからホームディレクトリまでtagsファイルを読込む設定
~/.vimrc

if has('path_extra')
    set tags+=tags;/Users/myuser
endif

ctags -R ←カレントディレクトリにtagsファイルが生成


taglist

開いてるファイルのtaglistを表示する。

~/.vimrc

set tags+=tags

tagsファイルを読み込めばよいので、ctagsの設定がされていれば必要ない。


vim-translator

翻訳ができるplugin。
ソースコードを読んでいる時とかに分からない単語があったら翻訳できる。

~/.vimrc

"for nodejs
let g:goog_user_conf = {'langpair': 'en|ja','cmd': 'node' ,'v_key': 'T' }

2012-03-09

rssのxml構造を少し

ネットの定点観測としてrssが便利だねってことで
rssを取り込む時の基礎知識程度だが、

rssはchannel要素とitem要素に分かれている。
channelはサイトの基本情報、itemは記事の情報で
rssを取得するときはitem要素の記事の情報を取得することが目的のはず

title:タイトル
link:url
description:概要

の3つが必ずある要素で、
以下にあるかは分からないが便利そうな要素

language:言語の選別が可能になる(channelのみ)
pubDate:コンテンツの発行日時
category:コンテンツのカテゴリ(便利かも)


参考リンク

RSS 2.0 Specification 日本語訳

RSSのフォーマット・仕様・構造 - RSS1.0、RSS2.0、Content-Type

2011-05-28

javascript 基本の基本

基本的な所から
<!DOCTYPE html>
<html lang="ja">
    <head>
        <title>sample</title>
        <meta charaset="UTF-8">
        <script>
            function plus(x,y) {
                var ans=x+y;
                return(ans)
            }
            function mul(x,y){
                var ans=x*y;
                return(ans)
            }
        </script>
    </head>
    <body>
        <script>
            document.writeln(plus(3,5));
            document.writeln(mul(5,5));
            document.writeln(plus())
        </script>
    </body>
</html>

出力
8 25 NaN


スクリプト全体をでコメントアウトすることで未対応のブラウザに対応


未対応のブラウザに対してのメッセージ

ってことだったんだけれども、twitterやgoogleのページを見たらしてないっぽくて、そっちに乗っかってみた。
あとHTML5ではscriptタグのtypeに初期値でtext/javascript入ってるからtypeが省略できるとgoogleのソース見て気づいた。

javascriptをするにあたって

まず対象にするバージョンがjavascript2.0ということで
以前の物との変更点を調べて見たところ、

あまりないらしい、

具体的には
・jsonのサポートの追加
・大きな仕様の変更はない

ということなんで、2.0とかあまり気にしなくても使えるようになれそうって風に思える。

2011-05-27

html5を簡単に作成

前回前々回の流れで何かやりたいことがあった分けでもないけれども、
面白そうだったので、HTML5について触ってみた。
といってもテンプレート的な物までしかできなかったのだが。



htmlソース


以下が作成したhtmlのソースである。

index.html
<!DOCTYPE html>
<html lang="ja"><head>
    <meta name="description" content="site_description">
    <meta name="keywords" content="site_keywords"> 
    <meta charaset="UTF-8">
    <title>test webpage</title>
    <link rel="stylesheet" href="import.css">
    <!--    <script src="pass"></script> -->
    <!--[if lte IE 8]>
    <script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/html5.js"></script>
    <![endif]--> 
</head><body>
    <header>head
        <hgroup>
            hgroup1
            hgroup2
        </hgroup>
    </header>
    <section>section</section>
    <nav>nav
    <ul>
        <li>1th</li>
        <li>2th</li>
        <li>3th</li>
        <li>4th</li>
    </ul>
    </nav>
    <footer>footer</footer>
</body></html>

HTML5は使いやすいようにに作られているという感じで、サクサク作れた。

htmlはよくある、2colomにheaderとfooterが付いている形なのだが、
cssを作っている時にpxやら%やらの大きさで悩んでいた結果、文字を基準にしたemにして落ち着いた。


import.cssを読み込むとbase.cssとlayout.cssの2つのcssファイルを読み込むことができる。

import.css
@charset "UTF-8";

@import url(base.css);
@import url(layout.css);

layout.cssはhtmlのスタイルを変更している。

layout.css
body{
    width:74em;
    margin:0 auto;
    text-align:center;
    background:#000;
    -webkit-box-sizing: border-box; /* Safari,Google Chrome用 */  
    -moz-box-sizing: border-box; /* Firefox用 */  
    -ms-box-sizing: border-box; /* Internet Explorer 8用 */  
    box-sizing: border-box; /* Opera用 */  
}
header,section,nav,footer{
    display:block;
    background:#FFF;
    padding:2em;
    margin:1em;
}
header{
    min-height:6em;
}
section,nav{
    min-height:30em;
}
section{
    float:right;
    width:40em;
}
nav{
    float:right;
    width:20em;
}
footer{
    clear:both !important;
    min-height:3em;
}


あと肝心のcss3は
-webkit-box-sizing: border-box; /* Safari,Google Chrome用 */
-moz-box-sizing: border-box; /* Firefox用 */
-ms-box-sizing: border-box; /* Internet Explorer 8用 */
box-sizing: border-box; /* Opera用 */
ここだけで、padding、borderの値の適用方法が変わるものである。
あと、ここまでやって気づいたが,
css3にはbox系プロパティ?正確な名前は分からないが、簡単に2colomや3colomのliquidな物が作れるように
なっているらしく良さそうな感じ、使うかもしれない。



いちようHTML5のテンプレはできたし問題はないはず。
がHTML5の動的な感じのタグはまったく使ってないため、そのうち使いたい。

参考リンク
Web標準仕様 日本語訳一覧

CSS3 でのレイアウトで使える box 系プロパティのまとめ

多摩美 - メディアリテラシー 2010::HTML5+CSS3 入門