[date:20121209]の検索結果


自然言語処理(しぜんげんごしょり、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)

機械学習(きかいがくしゅう)とは、人工知能における研究課題の一 つで、人間が自然に行っている学習能力と同様の機能をコンピュータで実現しようとする技術や手法のこと。1959年にアーサー・サミュエルは機械学習を「明示的にプログラムしなくても学習する能力をコンピュータに与える研究分野」と定義している。

機械知覚、コンピュータビジョン、自然言語処理、統語的パターン認識、検索エンジン、人工知能診断、バイオインフォマティクスなどの応用分野がある。

機械学習 - Wikipedia
機械学習 はじめよう:連載|gihyo.jp … 技術評論社
機械学習 (Machine Learning) の紹介
パターン認識と機械学習入門
米スタンフォード大学が「機械学習」「データベース」「人工知能」の無料オンライン授業を今秋から開始

言語処理のための機械学習入門 (自然言語処理シリーズ)
コロナ社 著者:高村 大也


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


[2238] Posted by kagahiro at 2012/12/09 00:14:58
0 point | Link (10) | Trackback (0) | Comment (0)

  1  


アクセスランキング

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

  1. 2chまとめサイト - 痛いニュース(ノ∀`) (3 PV)
  2. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (2 PV)
  3. Google News (グーグルニュース)日本版 (2 PV)
  4. MySQLのINSERT ... SELECT文でLIMIT句を使用して上位3件のレコードをテーブルに追加する (1 PV)
  5. 裁量トレードで買い(BUY)か売り(SELL)かを判断する方法 (1 PV)
  6. A8.net(エーハチネット)、アフィリエイト商品DBをソニーの「FLO:Q」に提供 (1 PV)
  7. [将棋]ユーチューバーのクロノさんが将棋ウォーズ運営からアカウント停止の警告を受ける #ソフト指し #複垢 #アカBAN (1 PV)
  8. 将棋ウォーズPCブラウザ版がchrome、Firefox、edgeなどに対応 (1 PV)
  9. Exness ソーシャルトレーディングの戦略プロバイダーになりました (1 PV)
  10. リネージュアイテム売買 (1 PV)

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

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (1111 PV)
  2. Google News (グーグルニュース)日本版 (239 PV)
  3. 日経平均株価(にっけいへいきんかぶか) (132 PV)
  4. 2chまとめサイト - 痛いニュース(ノ∀`) (102 PV)
  5. 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (94 PV)
  6. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (94 PV)
  7. 仲値トレードが簡単にできる無料EA「NAKANE3 Ver 2.04」 #MT4 (90 PV)
  8. SQLiteのSELECT文で上位 (TOP) n件のデータを取得する (87 PV)
  9. 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (73 PV)
  10. 裁量トレードで買い(BUY)か売り(SELL)かを判断する方法 (71 PV)

アクセス統計

ディレクトリ

関連サイト