Dengan perkembangan teknologi kecerdasan buatan, Natural Language Processing (NLP) telah menjadi teknologi yang sangat penting. NLP boleh membantu kami lebih memahami dan menganalisis bahasa manusia untuk mencapai beberapa tugas automatik, seperti perkhidmatan pelanggan pintar, analisis sentimen, terjemahan mesin, dsb. Dalam artikel ini, kami akan membincangkan asas dan alatan untuk pemprosesan bahasa semula jadi menggunakan PHP.
Pemprosesan bahasa semula jadi ialah kaedah yang menggunakan teknologi kecerdasan buatan untuk memproses dan memahami bahasa manusia. Ia merangkumi banyak aspek teknologi, termasuk pemprosesan teks, pengecaman pertuturan, analisis semantik, dsb. Antaranya, pemprosesan teks ialah teknologi yang paling biasa, yang terutamanya melibatkan pembahagian teks, penandaan sebahagian daripada pertuturan, pengecaman entiti, dsb.
Sebagai bahasa pengaturcaraan yang digunakan secara meluas, PHP juga mempunyai banyak alatan dan perpustakaan yang sesuai untuk pemprosesan bahasa semula jadi. Mari kita perkenalkan beberapa alatan dan perpustakaan yang lebih biasa digunakan di bawah.
2.1 Alat pembahagian perkataan
Pembahagian perkataan ialah pautan yang sangat asas dalam pemprosesan bahasa semula jadi Ia terutamanya memotong teks kepada perkataan mengikut peraturan tertentu. Dalam PHP, terdapat banyak alat pembahagian kata sumber terbuka yang tersedia, seperti jieba-php, php-segmen, dll. Mari kita ambil jieba-php sebagai contoh untuk menunjukkan cara menggunakannya untuk pembahagian perkataan Cina.
// 导入分词工具类 require_once 'vendor/multi-operation/jieba-php/src/vendor/multi-operation/Jieba.php'; require_once 'vendor/multi-operation/jieba-php/src/vendor/multi-operation/Finalseg.php'; use FukuballJiebaJieba; use FukuballJiebaFinalseg; // 初始化分词器 Jieba::init(); Finalseg::init(); // 测试文本 $text = '这个菜单有酸辣粉、牛肉面、红烧肉、鱼香茄子等多种美食'; // 进行分词 $segments = Jieba::cut($text); // 输出结果 print_r($segments);
Dalam kod di atas, kami mula-mula mengimport perpustakaan kelas jieba-php dan memulakan tokenizer menggunakan Jieba::init() dan Finalseg::init(). Seterusnya, kami menghantar teks untuk dibahagikan kepada kaedah Jieba::cut() untuk mendapatkan perkataan tersegmen. Akhirnya, kami mengeluarkan keputusan melalui print_r().
2.2 Alat Penandaan Sebahagian daripada Pertuturan
Penendaan Sebahagian daripada Pertuturan ialah bahagian penting dalam pemprosesan bahasa semula jadi. Ia boleh membantu kita memahami dengan lebih baik maksud setiap perkataan dalam ayat. Dalam PHP, terdapat banyak perpustakaan yang boleh digunakan untuk penandaan sebahagian daripada ucapan, seperti phpgo-pos, phpjieba, php-ml, dll. Mari kita ambil phpgo-pos sebagai contoh untuk menunjukkan cara menggunakannya untuk penandaan sebahagian daripada pertuturan bahasa Cina.
// 导入词性标注类 require_once 'vendor/phpgo-pos/src/POSTag.php'; use KsamuelPhpGoPosTagger; use KsamuelPhpGoTag; // 测试文本 $text = 'PHP是一门很流行的编程语言'; // 进行词性标注 $tagger = new PosTagger(); $tags = $tagger->tag(explode(' ', $text)); // 输出结果 foreach ($tags as $tag) { echo $tag[0] . '/' . Tag::keyOf($tag[1]) . ' '; }
Dalam kod di atas, kami mengimport perpustakaan kelas phpgo-pos dan menggunakan PosTagger() untuk membina penanda sebahagian daripada pertuturan. Seterusnya, kami menghantar teks untuk ditag ke kaedah tag() untuk mendapatkan hasil yang ditag. Akhirnya, kami mengeluarkan keputusan melalui gelung foreach.
2.3 Alat pengecaman entiti
Pengiktirafan entiti ialah satu lagi pautan penting dalam pemprosesan bahasa semula jadi Ia boleh membantu kami mengenal pasti entiti seperti nama orang, nama tempat dan nama organisasi dalam teks. Dalam PHP, terdapat juga beberapa perpustakaan yang boleh digunakan untuk pengecaman entiti, seperti php-ner, php-nlp-tools, dll. Mari kita ambil php-ner sebagai contoh untuk menunjukkan cara menggunakannya untuk pengecaman entiti.
// 导入实体识别类 require_once 'vendor/php-ner/src/Ner.php'; use AnalyzeNER; // 测试文本 $text = '我是张三,来自北京市海淀区'; // 进行实体识别 $ner = new NER(); $entities = $ner->analyze($text); // 输出结果 foreach ($entities as $entity) { echo $entity->getEntityType() . ': ' . $entity->getEntity() . " "; }
Dalam kod di atas, kami mengimport perpustakaan kelas php-ner dan menggunakan NER() untuk mencipta pengecam entiti. Seterusnya, kami menghantar teks untuk dikenali kepada kaedah analisis() untuk mendapatkan entiti yang diiktiraf. Akhirnya, kami mengeluarkan keputusan melalui gelung foreach.
Pemprosesan bahasa semula jadi ialah teknologi yang sangat berguna yang boleh membantu kita memahami dan menganalisis bahasa manusia dengan lebih baik. Dalam PHP, terdapat banyak alat dan perpustakaan yang sesuai untuk pemprosesan bahasa semula jadi, seperti jieba-php, phpgo-pos, php-ner, dll. Dengan belajar menggunakan alatan dan perpustakaan ini, kami boleh mencapai matlamat pemprosesan bahasa semula jadi kami dengan lebih baik.
Atas ialah kandungan terperinci Panduan Pemula untuk Pemprosesan Bahasa Semulajadi dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!