Dengan pembangunan berterusan teknologi kecerdasan buatan, pemprosesan pertuturan dan aplikasi pemprosesan bahasa semula jadi telah menjadi hala tuju pembangunan yang penting dalam bidang Internet. Sebagai bahasa pengaturcaraan yang popular, PHP juga berbeza daripada bahasa lain kerana ia mempunyai cara tersendiri untuk menerapkan teknologi kecerdasan buatan. Artikel ini akan memperkenalkan cara membangunkan pemprosesan pertuturan kecerdasan buatan dan aplikasi pemprosesan bahasa semula jadi dalam PHP.
1. Pemprosesan pertuturan
Untuk melakukan pemprosesan pertuturan dalam PHP, anda perlu menggunakan perpustakaan sambungan PHP-FFI ialah singkatan Antara Muka Fungsi Asing, yang digunakan untuk mentakrifkan kod C dalam bahasa pengaturcaraan yang berbeza. Melalui PHP-FFI, kita boleh memanggil kaedah perpustakaan C/C++ luaran dalam PHP dan mengembalikan nilai.
Pasang sambungan PHP-FFI dan kebergantungan yang berkaitan
Pada platform Linux, anda boleh menggunakan arahan berikut:
sudo apt-get install libffi-dev sudo pecl install ffi
Gunakan Komposer untuk memperkenalkan pakej perpustakaan FFI
composer require polysign/php-ffi
Kami mempunyai fail .php yang menyerupai perpustakaan C/C++ luaran, kerana PHP-FFI melengkapkan panggilan melalui fail ini.
Kita perlu mencipta contoh FFI terlebih dahulu:
$ffi = FFI::load("module.h");
di mana module.h ialah laluan ke fail .h perpustakaan C/C++ luaran. Fungsi dalam contoh ini dipanggil "get_integer()" dan mengembalikan nilai jenis int.
Apabila memanggil fungsi luaran, kita boleh menggunakan kaedah berikut:
$result = $ffi->get_integer();
Beginilah cara PHP-FFI memanggil pustaka C/C++ luaran. Kita boleh menggunakan kaedah ini untuk memanggil pelbagai perpustakaan pemprosesan pertuturan.
2. Pemprosesan Bahasa Semulajadi
Terdapat dua perpustakaan utama yang melaksanakan pemprosesan bahasa semula jadi, iaitu PHP-ML dan StanfordNLP.
1.PHP-ML
PHP-ML ialah perpustakaan pembelajaran mesin yang ringkas dan mudah digunakan yang boleh melaksanakan pemprosesan dan pengelasan bahasa semula jadi dengan mudah Kaedah pemasangan perpustakaan ini adalah sebagai berikut:
Gunakan Komposer untuk memperkenalkan pakej PHP-ML
composer require php-ml/php-ml
Gunakan dalam program:
use PhpmlClassificationSVC; use PhpmlSupportVectorMachineKernel; // 创造一个SVC实例 $classifier = new SVC(Kernel::LINEAR, $cost = 1000); // 训练数据 $classifier->train($samples, $labels); // 预测 $classifier->predict($unknown);
2.StanfordNLP
StanfordNLP ialah perpustakaan Java yang boleh melaksanakan operasi pemprosesan bahasa Semula jadi lanjutan, seperti pengecaman entiti bernama, pengekstrakan perhubungan entiti, pembahagian ayat, pengetegan sebahagian daripada pertuturan, dsb.
Pustaka ini memerlukan sokongan persekitaran masa jalan Java.
Kita perlu memasang Java terlebih dahulu (langkau langkah ini jika ia sudah dipasang pada platform Linux, anda boleh menggunakan arahan berikut:
sudo apt-get install default-jdk
Kemudian pasang StanfordNLP dalam persekitaran Java, yang mengandungi berbilang Model, kita boleh memilih seperti yang diperlukan:
1 Muat turun kod StanfordNLP:
wget https://nlp.stanford.edu/software/stanford-parser-full-2018-10-17.zip
2 Unzip
unzip stanford-parser-full-2018-10-17.zip
3 🎜> pertama Pergi ke direktori dinyahmampat dalam terminal dan jalankan arahan berikut:
export STANFORD_MODELS=$(pwd)/stanford-parser-full-2018-10-17 export CLASSPATH=$STANFORD_MODELS/stanford-parser.jar
4 Menggunakan StanfordNLP
Menggunakan program Java dalam PHP dipanggil melalui arahan "exec()" Java. Dengan cara ini, pengguna yang melaksanakan fail PHP perlu mempunyai kebenaran melaksanakan semasa menjalankan Java.
Apabila menggunakan Java parser dalam PHP, kita perlu melaksanakan program Java dan mengeluarkan hasilnya kepada STDOUT (strim output standard), dan kemudian membaca STDOUT daripada skrip PHP untuk mendapatkan hasilnya.
<?php $output = shell_exec('java -mx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 15000 2>&1 &'); sleep(5); // 这里必须等待一段时间来启动 $text = 'The quick brown fox jumped over the lazy dog.'; $url = "http://127.0.0.1:9000/?properties="; $url .= urlencode('{"annotators": "tokenize,ssplit,pos","outputFormat": "json"}'); $data = urlencode($text); $result = file_get_contents($url . "&text=" . $data); var_dump(json_decode($result, true));
Apabila skrip ini dilaksanakan, ia akan mengeluarkan hasil analisis yang dikembalikan oleh StanfordNLP dalam format JSON.
Nota Penting
Memandangkan StanfordNLP memerlukan banyak memori dan sumber pengkomputeran, sila gunakannya dengan berhati-hati apabila memproses jumlah teks yang besar atau besar.Dalam artikel ini, kami memperkenalkan cara melakukan pemprosesan pertuturan dan pemprosesan bahasa semula jadi dalam PHP. Kami juga mempelajari tentang dua perpustakaan kecerdasan buatan: PHP-ML dan StanfordNLP, yang boleh menyelesaikan tugas yang sepadan dengan mudah.
Apabila membangunkan aplikasi kecerdasan buatan, mempertimbangkan isu prestasi, kami perlu menggunakan bahasa pengaturcaraan asas. Tetapi dengan sokongan PHP-FFI, kami boleh berinteraksi dengan PHP dan C/C++ dengan mudah. Pada masa yang sama, PHP mempunyai kelebihan kerana mudah dipelajari dan mudah diselenggara, yang menjadikannya pilihan ideal untuk susunan teknologi Bukan Perusahaan.
Oleh itu, PHP mungkin merupakan pilihan yang sangat baik dan cekap untuk pembangun PHP yang ingin menggunakan teknologi kecerdasan buatan pada tapak web atau aplikasi mereka sendiri.
Atas ialah kandungan terperinci Bagaimana untuk membangunkan pemprosesan pertuturan kecerdasan buatan dan aplikasi pemprosesan bahasa semula jadi dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!