Maison  >  Article  >  développement back-end  >  Introduction au principe d'implémentation de la recherche plein texte chinois en PHP

Introduction au principe d'implémentation de la recherche plein texte chinois en PHP

藏色散人
藏色散人avant
2019-04-26 10:48:025427parcourir

Les articles ou contenus pertinents en développement général sont recherchés à l'aide de balises de mots-clés et de titres, mais cette recherche utilisera essentiellement des déclarations similaires inefficaces. En raison de la faible efficacité, dans le développement de projets légèrement plus importants, nous ne pouvons pas effectuer de recherches détaillées sur le terrain pour des articles ou. contenu associé (le serveur est sous trop de pression et l'efficacité est extrêmement faible).

Solutions communes

1. sphinx + coreseek

Avantages : technologie mature et stable

Inconvénients : sphinx ne prend pas en charge le chinois coressk a actuellement arrêté la maintenance [S'il s'agit d'un environnement purement anglais, sphinx est excellent]

2. Xunsearch (Xunsearch)

Avantages : technologie mature et stable

Inconvénients : Le processus d'installation est compliqué et la configuration n'est pas assez flexible

3. Recherche en texte intégral MySQL

Avantages : Installation facile et haute efficacité.

Inconvénients : Pas assez bon pour le support chinois

Solution de hcoder (segmentation de mots + configuration indépendante)

Avantages : Installation simple (composant php), la couche inférieure est écrite par le développeur lui-même, la couche inférieure est plus claire et plus facile Optimisation

Inconvénients : les développeurs doivent avoir une connaissance de base de php + mysql et doivent écrire eux-mêmes le code pour l'ensemble du processus

Principe

1、获取词语环节
文章数据表 -> 逐行读取文章信息 -> 组合所有文字内容 -> 分词、去重 -> 记录到新的数据表
2、搜索环节
搜索关键字记录表 -> 合并文章数据 -> 去重 -> 展示数据

Composants tiers (scws) utilisés

http://www.xunsearch.com/scws/

SCWS est l'abréviation de Simple Chinese Word Segmentation (c'est-à-dire : Système simple de segmentation de mots chinois).

Il s'agit d'un moteur mécanique de segmentation de mots chinois basé sur un dictionnaire de fréquence de mots, qui peut fondamentalement segmenter correctement un paragraphe entier de texte chinois en mots. Le mot est la plus petite unité morphémique en chinois, mais lorsqu'ils sont écrits, les mots ne sont pas séparés par des espaces comme en anglais. Par conséquent, la segmentation précise et rapide des mots a toujours été un problème difficile dans la segmentation des mots chinois.

SCWS est développé en langage C pur et ne s'appuie sur aucune fonction de bibliothèque externe. Il peut utiliser directement des bibliothèques de liens dynamiques pour intégrer des applications. Les encodages chinois pris en charge incluent GBK, UTF-8, etc. De plus, un module d'extension PHP est fourni pour utiliser rapidement et facilement la fonction de segmentation de mots en PHP.

Il n'y a pas beaucoup d'éléments innovants dans l'algorithme de segmentation des mots. Il utilise le dictionnaire de fréquence des mots collecté par lui-même, complété par certains noms propres, noms de personnes, noms de lieux, âges numériques et autres règles de reconnaissance pour obtenir une reconnaissance de base. segmentation des mots. La précision du test de plage est comprise entre 90 % et 95 %, ce qui peut essentiellement répondre aux besoins de certains petits moteurs de recherche, à l'extraction de mots clés et à d'autres occasions. La première version prototype a été publiée fin 2005.

SCWS a été développé par hightman et publié en open source sous la licence BSD. Le code source est hébergé sur github.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer