[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. [将棋]豊島将之八段が「序盤中盤終盤スキのない」将棋で「無冠の帝王」森下卓九段に完勝 #NHK杯 (1 PV)
  2. [将棋]竜王戦第三局は居飛車振り飛車の対抗型で丸山忠久九段が勝利 #竜王戦 (1 PV)
  3. 麺が無いならラーメンでは無いが、日清食品が「日清麺なしラーメン」を新発売 (1 PV)

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

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (2909 PV)
  2. Google News (グーグルニュース)日本版 (500 PV)
  3. Deep Learning (日本語翻訳版) - ディープラーニング(深層学習)に関する書籍の決定版 #機械学習 (336 PV)
  4. [将棋]将棋実況ユーチューバーのクロノさんが朝日新聞のクレームで棋譜中継を配信中止 (255 PV)
  5. [将棋]竜王戦第三局は居飛車振り飛車の対抗型で丸山忠久九段が勝利 #竜王戦 (246 PV)
  6. [食べ物]七草粥(ななくさがゆ) (230 PV)
  7. グーグルニュース日本語版が見れない (228 PV)
  8. フリーソフトウェア/オープンソースのタブー (193 PV)
  9. 「CASH(キャッシュ)」アイテム(ブランド品やガジェット)の写真を撮れば審査なしで現金化できるサービス (192 PV)
  10. 無料の動画ダウンロードツール「xVideoServiceThief」 (166 PV)

アクセス統計

ディレクトリ

関連サイト