Maison  >  Article  >  développement back-end  >  Partage d'outils de recherche de segmentation de mots chinois sous asp.net

Partage d'outils de recherche de segmentation de mots chinois sous asp.net

黄舟
黄舟original
2017-10-08 09:34:522294parcourir

jieba est une bibliothèque de recherche sous python. Quelqu'un a transplanté cette bibliothèque sur la plateforme asp.net. Elle peut remplacer complètement lucene.net et la combinaison de la segmentation des mots Pangu

La raison pour laquelle j'ai écrit ceci est. en fait parce qu'hier, lors de l'interview, on m'a demandé comment feriez-vous une recherche par mot-clé sur un site Web ? Je viens de parler des requêtes floues SQL, de l'optimisation et de la mise en cache des instructions SQL. J'ai déjà été exposé à la segmentation de mots clés, mais il n'existe pas de bibliothèque de récupération de segmentation de mots mature sous la plate-forme .net, contrairement à Java avec Lucene. Bien qu'elle ait été transplantée sur .net, la mise à jour est lente. Quand j'apprenais Python auparavant, j'ai remarqué la recherche de segmentation de mots et la création de nuages ​​de mots de Python. Je me demandais s'il existait une bibliothèque de recherche de segmentation de mots Python qui pourrait être transplantée sur .net. J'ai vérifié la bibliothèque Python Jieba et, bien sûr, elle a été transplantée. !
Introduction au texte original : version .NET de la segmentation des mots chinois jieba : jieba.NET
Un composant de segmentation de mots courant sur la plate-forme .NET est la segmentation des mots Pangu, mais il n'a pas été mis à jour depuis longtemps. Le plus évident est le dictionnaire intégré de Jieba qui compte 500 000 entrées, tandis que celui de Pangu en compte 170 000. Cela entraînera des effets de segmentation de mots très différents. De plus, pour les mots non enregistrés, jieba « adopte un modèle HMM basé sur la capacité de formation de mots des caractères chinois et utilise l'algorithme de Viterbi », et l'effet semble bon.

On peut aussi rechercher et télécharger directement dans le gestionnaire de paquets nuget de VS2013 :

J'ai vu quelqu'un dans les commentaires dire que la période mensuelle de la vierge l'officier de l'industrie et des technologies de l'information sera les départements subordonnés qui devront expliquer personnellement le travail d'installation des commutateurs 24 ports et autres appareils techniques. C'est bien si vous pouvez bien le diviser, je l'ai testé moi-même :

<.>

var segmenter = new JiebaSegmenter();

            Console.WriteLine("原检索语句: 工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作");            
            var segments1 = segmenter.Cut("工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作", cutAll: true);
            Console.WriteLine("[全模式]: {0}", string.Join("/ ", segments1));            
            var segments2 = segmenter.Cut("工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作");  // 默认为精确模式
            Console.WriteLine("【精确模式】:{0}", string.Join("/ ", segments2));            
            var segments3 = segmenter.Cut("工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作");  // 默认为精确模式,同时也使用HMM模型
            Console.WriteLine("【新词识别】:{0}", string.Join("/ ", segments3));            
            var segments4 = segmenter.CutForSearch("工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作"); // 搜索引擎模式
            Console.WriteLine("【搜索引擎模式】:{0}", string.Join("/ ", segments4));            
            var segments5 = segmenter.Cut("工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作");
            Console.WriteLine("【歧义消除】:{0}", string.Join("/ ", segments5));

            Console.Read();
Résultats en cours d'exécution :


Pas mal, à l'exception du mode complet, le reste peut respecter l'ordre que nous, les humains, lisons

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn