[変換]の検索結果


PHPの場合は、ズバリ10進数を2進文字列に変換できるdecbin関数があるので、decbin関数を使用すればいいのですが、 もちろん、Perlの場合と同様にビット演算で2進文字列に変換することもできます。以下は、そのサンプルコードです。

<?php

// 'A'のアスキーコード値を取得
$asciicode = ord('A');

// PHPのdecbin関数で2進文字列に変換し、sprintfで整形
$binarystr = sprintf("%08.8s", decbin($asciicode));
print $binarystr . " (1)\n"; // for debug

// ビット演算で2進文字列に変換
$binarystr = _binstr($asciicode);
print $binarystr . " (2)\n"; // for debug

function _binstr($code) {
    $str = '';
    for ($i = 0; $i < 8; $i++) {
        $str .= (0x80 & $code) ? '1' : '0';
        $code <<= 1;
    }
    return $str; 
}
?>

このスクリプトをコマンドラインで実行すると次のように表示されます。

C:\xampp\htdocs\sample>\xampp\php\php binstr.php
01000001 (1)
01000001 (2)

PHPハンドブック (ハンドブックシリーズ)
ソフトバンククリエイティブ 著者:柏岡 秀男


amazon.co.jpのカスタマーレビューを見る
powered by amalink

[2242] Posted by kagahiro at 2012/12/11 19:33:29
0 point | Link (1) | Trackback (0) | Comment (0)

自然言語処理(しぜんげんごしょり、natural language processing、NLP)は、人間が日常的に使っている自然言語をコンピュータに処理させる一連の技術であり、人工知能と言語学の一分野。「計算言語学」(computational linguistics)も同じ意味だが、自然言語処理が工学的な視点からの言語処理をさすのに対して、計算言語学は言語学的視点を重視する手法をさす事が多い。データベース内の情報を自然言語に変換したり、自然言語の文章をより形式的な(コンピュータが理解しやすい)表現に変換するといった処理が含まれる。

自然言語処理の基礎技術にはさまざまなものがあるが、現在のところ、日本語を処理する基礎技術としては、形態素解析、構文解析、語義の曖昧性解消照応解析が主に研究されている。

自然言語処理 - Wikipedia
言語処理学会 The Association for Natural Language Processing
自然言語処理ツール
Python による日本語自然言語処理
Perl で自然言語処理

入門 自然言語処理
オライリージャパン 著者:Steven Bird,Ewan Klein,Edward Loper


amazon.co.jpのカスタマーレビューを見る
powered by amalink

[2240] Posted by kagahiro at 2012/12/09 22:59:04
0 point | Link (1) | Trackback (0) | Comment (0)

Perlの関数を使用して、以下の手順で10進数を2進文字列に変換することができます。

  1. sprintf関数で10進数を16進文字列に変換
  2. pack関数で16進文字列をバイナリーにパック
  3. unpack関数で2進文字列に変換

例えば、文字列の先頭文字のASCIIコード値(10進数)を取得し、それを2進文字列に変換に変換する場合は、 次のようなコードになります。

#!/usr/bin/perl

use strict;
use warnings;

my $ascii = "ABC";
my $asciicode = ord $ascii;  # 先頭文字のASCIIコード値を取得
my $str = _bitstr($asciicode, 8);
print "str   = $str\n"; # for debug

exit;

# 10進数を2進文字列に変換する関数
sub _bitstr {
    my ($code, $len) = @_;
    my $hexcode = sprintf("%X", $code); # 16進に変換
    my $bitstr = unpack("B".$len, pack("H2", $hexcode));
}

10進数を単に2進文字列に変換するだけならこれでも構わないのですが、ビット演算子を使ってビットのオン・オフを判定して、 2進文字列を作成していく方法もあります。以下のコードはその実装例です。

#!/usr/bin/perl

use strict;
use warnings;

my $ascii = "ABC";
my $asciicode = ord $ascii;  # 先頭文字のASCIIコード値を取得
my $str = _bitstrR($asciicode, 8);
print "str   = $str\n"; # for debug

exit;

# ビット演算で10進数を2進文字列に変換する関数
sub _bitstrR {
    my ($code, $len) = @_;
    my $bitstr = '';
    for my $i (1 .. $len) {
        $bitstr .= (0x80 & $code) ? '1' : '0'; # 0x80(2進数:10000000)でビット論理積をとる
        $code <<= 1;
    }
    return $bitstr;
}

ここで問題になるのはどちらの方法が処理速度が優れているかということですが、以下のコードのプロファイルを取ると・・・

#!/usr/bin/perl

use strict;
use warnings;

my $ascii = "ABC";
my $asciicode = ord $ascii;  # 先頭文字のASCIIコード値を取得

my $str = '';
for my $j (1 .. 10000) {
    $str = _bitstr($asciicode, 8);
    $str = _bitstrR($asciicode, 8);
}
print "str   = $str\n"; # for debug

exit;

sub _bitstr {
    my ($code, $len) = @_;
    my $hexcode = sprintf("%X", $code); # 16進に変換
    my $bitstr = unpack("B".$len, pack("H2", $hexcode));
}

sub _bitstrR {
    my ($code, $len) = @_;
    my $bitstr = '';
    for my $i (1 .. $len) {
        $bitstr .= (0x80 & $code) ? '1' : '0'; # 0x80(2進数:10000000)でビット論理積をとる
        $code <<= 1;
    }
    return $bitstr;
}


C:\xampp\htdocs\sample>perl -d:Dprof bitstr3.pl
str   = 01000001

C:\xampp\htdocs\sample>dprofpp
Total Elapsed Time = 0.018988 Seconds
  User+System Time = 0.016988 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c  Name
 223.   0.038  0.038  10000   0.0000 0.0000  main::_bitstr
 47.0   0.008  0.008  10000   0.0000 0.0000  main::_bitstrR
 0.00       - -0.000      1        -      -  strict::import
 0.00       - -0.000      1        -      -  warnings::import
 0.00       - -0.000      1        -      -  strict::bits
 0.00       - -0.000      2        -      -  main::BEGIN

やはり、ビット演算で2進文字列を作成するほうが早いようです。

プログラミングPerl〈VOLUME1〉
オライリー・ジャパン 著者:ラリー ウォール,ジョン オーワント,トム クリスチャンセン


amazon.co.jpのカスタマーレビューを見る
powered by amalink

[2239] Posted by kagahiro at 2012/12/09 20:36:29
0 point | Link (4) | Trackback (0) | Comment (0)

xVideoServiceThief とはxVideoServiceThiefは、YouTube、USTREAM、Yahoo! Video、YourFileHostなど様々な動画共有サイトの動画を、AVI、WMV、MPEG1、MPEG2、MP4、MP4 HD、3GP、MP3形式またはApple iPod、Sony PSP用...
[2168] Posted by kagahiro at 2012/04/18 16:49:35
0 point | Link (7) | Trackback (0) | Comment (0)

オープンソースのシンプルな掲示板CGI「ThreadPlus 1.0」をリリースしました。プログラミング言語はperl、ライセンスはGPLv2です。ThreadPlusは、以前公開していた掲示板CGI(bbsCGI.CGI)の機能を見直し、若干の機能...
[2140] Posted by kagahiro at 2012/01/17 23:17:11
1 point | Link (2) | Trackback (0) | Comment (1)

SphereMP3は、動画ファイル(FLV/SWF/MP4)を音楽ファイル(MP3/AAC)に変換することができる無料のWEBサービス。使い方は、変換させたい動画ファイル(対応形式は、FLV、SWF、 MP4 の3種類/最大200MB)を準備し、オ...
[2132] Posted by kagahiro at 2011/11/29 16:48:37
0 point | Link (2) | Trackback (0) | Comment (0)

「Dart」は大規模なWebアプリケーションを開発するために新しく開発したプログラミング言語。現在のところ「Dart」で作成したプログラムを動作させるためには、Dartバーチャルマシン上で実行するか、JavaScriptに変換...
[2128] Posted by kagahiro at 2011/10/12 18:30:23
0 point | Link (2) | Trackback (0) | Comment (0)

MP3Tubeは、ログインやインストールをする必要なく動画ファイルから音声を抽出してMP3でダウンロードできる無料サイト。音声(MP3)からYouTubeなど動画共有サイトにアップロードできるファイルを作成することもできる...
[2126] Posted by kagahiro at 2011/07/05 19:55:58
0 point | Link (3) | Trackback (0) | Comment (0)

Ajaxzip3は、川崎有亮氏が作成した郵便番号住所変換JavaScriptライブラリ「AjaxZip 2.0」を株式会社人気組が中心となって JSONP 対応したもので、サーバー設定なしでHTMLにコードを追加するだけで誰でも簡単に郵便番...
[2058] Posted by kagahiro at 2010/10/20 11:12:21
0 point | Link (1) | Trackback (0) | Comment (0)

AjaxZip 2.0は、フォームで郵便番号を入力すると、該当する都道府県名・住所が自動的に入力されるJavaScriptライブラリ。JavaScript のみで稼動するため、サーバサイドで稼動するCGIプログラムは不要。prototype.jpと...
[2057] Posted by kagahiro at 2010/10/19 16:10:16
0 point | Link (2) | Trackback (0) | Comment (0)

|< 先頭へ  < 前へ  1 2 3 4 5  次へ >


アクセスランキング

今日のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (7 PV)
  2. 仲値トレードが簡単にできる無料EA「NAKANE3」 #MT4 (7 PV)
  3. Google News (グーグルニュース)日本版 (7 PV)
  4. 無料掲示板CGIのダウンロード (5 PV)
  5. 検索サイトリンク集 (5 PV)
  6. Movable Type(ムーバブルタイプ)がインストールできる格安レンタルサーバー (3 PV)
  7. 99円レンタルサーバー (3 PV)
  8. 究極の爆益ゴールドナンピンマーチンEA「Extreme(エクストリーム)」 MT4向け (3 PV)
  9. ブログクライアント「ubicast Blogger」へのアカウント登録方法 (3 PV)
  10. EventForce(イベントフォース) (3 PV)

今月のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (193 PV)
  2. 仲値トレードが簡単にできる無料EA「NAKANE3」 #MT4 (174 PV)
  3. Google News (グーグルニュース)日本版 (149 PV)
  4. 無料掲示板CGIのダウンロード (121 PV)
  5. 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (107 PV)
  6. 2NN 2ちゃんねるニュース速報+ナビ (87 PV)
  7. MT4向け1ポジブレイクアウトEA「HEADLINE」オープンソースライセンス(GPL3)で公開 #USDJPY (80 PV)
  8. 究極の爆益ゴールドナンピンマーチンEA「Extreme(エクストリーム)」 MT4向け (73 PV)
  9. [将棋]羽生式袖飛車(はぶしきそでびしゃ) (67 PV)
  10. MT4向け1ポジアノマリーEA「DAY TRADING」 オープンソースライセンス(GPL3) #ドル円 (66 PV)

アクセス統計

ディレクトリ

関連サイト