Heim  >  Artikel  >  Backend-Entwicklung  >  Gemeinsame Nutzung von Suchtools für die Segmentierung chinesischer Wörter unter asp.net

Gemeinsame Nutzung von Suchtools für die Segmentierung chinesischer Wörter unter asp.net

黄舟
黄舟Original
2017-10-08 09:34:522275Durchsuche

jieba ist eine Suchbibliothek unter Python. Jemand hat diese Bibliothek auf die asp.net-Plattform übertragen. Sie kann Lucene.net und die Kombination aus Pangu-Wortsegmentierung vollständig ersetzen.

Der Grund, warum ich das geschrieben habe Eigentlich, weil ich gestern während des Interviews gefragt wurde, wie Sie eine Stichwortsuche auf einer Website durchführen würden. Ich habe gerade über SQL-Fuzzy-Abfragen und die Optimierung und das Caching von SQL-Anweisungen gesprochen. Ich war schon einmal mit der Schlüsselwortsegmentierung konfrontiert, aber im Gegensatz zu Java mit Lucene gibt es unter der .net-Plattform keine ausgereifte Wortsegmentierungsbibliothek, obwohl die Aktualisierung langsam ist. Als ich zuvor Python gelernt habe, ist mir die Wortsegmentierungssuche und die Erstellung von Wortwolken in Python aufgefallen. Ich habe mich gefragt, ob es eine Python-Wortsegmentierungssuchbibliothek gibt, die in .net übertragen werden kann, und tatsächlich wurde sie übertragen.
Originaltexteinführung: .NET-Version der chinesischen Wortsegmentierung von jieba: jieba.NET
Eine häufige Wortsegmentierungskomponente auf der .NET-Plattform ist die Pangu-Wortsegmentierung, die jedoch schon lange nicht mehr aktualisiert wurde. Das offensichtlichste ist das integrierte Wörterbuch mit 500.000 Einträgen, während das Wörterbuch von Pangu 170.000 Einträge hat. Dies führt zu deutlich unterschiedlichen Wortsegmentierungseffekten. Darüber hinaus verwendet Jieba für nicht registrierte Wörter „ein HMM-Modell, das auf der Wortbildungsfähigkeit chinesischer Schriftzeichen basiert und den Viterbi-Algorithmus verwendet“, und der Effekt sieht gut aus.

Wir können auch direkt im Nuget-Paketmanager von VS2013 suchen und herunterladen:

Ich habe in den Kommentaren jemanden gesehen, der sagte, dass die monatliche Periode der Jungfrau Beauftragte für Industrie und Informationstechnik müssen die Installationsarbeiten von 24-Port-Switches und anderen technischen Geräten persönlich erklären. Ich habe es selbst getestet:


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();

Laufergebnisse:

Nicht schlecht, bis auf den Vollmodus, der Rest kann die Reihenfolge erfüllen, die wir Menschen lesen

Das obige ist der detaillierte Inhalt vonGemeinsame Nutzung von Suchtools für die Segmentierung chinesischer Wörter unter asp.net. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn