Heim > Web-Frontend > js-Tutorial > Hauptteil

Ausführliche Erklärung, wie Sie Node.js zum Segmentieren von Textinhalten und zum Extrahieren von Schlüsselwörtern verwenden

黄舟
Freigeben: 2017-05-28 10:36:08
Original
1936 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die Verwendung von Node.js zum Segmentieren von Textinhalten und zum Extrahieren von Schlüsselwörtern vorgestellt. Freunde in Not können sich auf

beziehen, bevor sie über Technologie sprechen Erstens süß, du verstehst die Welt der Feinschmecker nicht ~~

Zhongcheng-übersetzte Artikel haben Tags, Benutzer können interessante Artikel schnell anhand von Tags filtern, und die Artikel sind Außerdem können relevante Empfehlungen basierend auf Tag-Assoziationen ausgesprochen werden. Aber jetzt werden die Tags von Zhongcheng Translation bei der Empfehlung von Artikeln festgelegt, und sie sind alle auf Englisch, und manuelle Einstellungen sind zwangsläufig nicht standardisiert und vollständig. Obwohl Artikel nach der Veröffentlichung manuell bearbeitet werden können, können wir nicht erwarten, dass Benutzer oder Administratoren ständig die entsprechenden Tags bearbeiten. Daher müssen wir Tools verwenden, um Tags automatisch zu generieren.

Unter den aktuellen Open-Source-Wortsegmentierungstools ist jieba eine Wortsegmentierungskomponente mit leistungsstarken Funktionen und hervorragender Leistung. Glücklicherweise gibt es eine Knotenversion.

nodejiebas Installation und Verwendung sind sehr einfach:

npm install nodejieba
var nodejieba = require("nodejieba");
var result = nodejieba.cut("帝国主义要把我们的地瓜分掉");
console.log(result);
//[ '帝国主义', '要', '把', '我们', '的', '地', '瓜分', '掉' ]
result = nodejieba.cut('土地,俺老孙的金箍棒在哪里?');
console.log(result);
//[ '土地', ',', '俺', '老', '孙', '的', '金箍棒', '在', '哪里', '?' ]
result = nodejieba.cut('大圣,您的金箍棒就棒在特别配您的头型!');
console.log(result); 
//[ '大圣',',','您','的','金箍棒','就','棒','在','特别','配','您','的','头型','!' ]
Nach dem Login kopieren

Wir können unser eigenes Wörterbuch laden und die Gewichtung und Wortart für jedes Wort im Wörterbuch festlegen:

Benutzer.uft8 bearbeiten
Süßkartoffel 9999 n
Golden Hoop 9999 n
Großartig ist großartig bei 9999
Laden Sie dann das Wörterbuch über nodejieba.load.

var nodejieba = require("nodejieba");
nodejieba.load({
 userDict: './user.utf8',
});
var result = nodejieba.cut("帝国主义要把我们的地瓜分掉");
console.log(result);
//[ '帝国主义', '要', '把', '我们', '的', '地瓜', '分', '掉' ]
result = nodejieba.cut('土地,俺老孙的金箍棒在哪里?');
console.log(result);
//[ '土地', ',', '俺', '老', '孙', '的', '金箍棒', '在', '哪里', '?' ]
result = nodejieba.cut('大圣,您的金箍棒就棒在特别配您的头型!');
console.log(result); 
//[ '大圣', ',', '您', '的', '金箍', '棒就棒在', '特别', '配', '您', '的', '头型', '!' ]
Nach dem Login kopieren

Zusätzlich zur Wortsegmentierung können wir nodejieba verwenden, um Schlüsselwörter zu extrahieren:

const content = `
Nach dem Login kopieren
Nach dem Login kopieren

HTTP, HTTP/2 und Leistungsoptimierung

Der Zweck dieses Artikels besteht darin, Ihnen durch einen Vergleich zu erklären, warum Sie von HTTP auf HTTPS migrieren sollten und warum Unterstützung für HTTP/2 hinzugefügt werden sollte. Bevor wir HTTP und HTTP/2 vergleichen, schauen wir uns zunächst an, was HTTP ist.

Was ist HTTP?

HTTP ist eine Reihe von Regeln für die Kommunikation im World Wide Web. HTTP ist ein Protokoll der Anwendungsschicht und läuft auf der TCP/IP-Schicht. Wenn ein Benutzer eine Webseite über einen Browser anfordert, ist HTTP für die Verarbeitung der Anfrage und den Aufbau einer Verbindung zwischen dem Webserver und dem Client verantwortlich.

Mit HTTP/2 kann die Leistung verbessert werden, ohne Sprite-Bilder, Komprimierung oder Spleißen zu verwenden. Dies bedeutet jedoch nicht, dass diese Techniken nicht verwendet werden sollten. Dies hat jedoch deutlich gezeigt, dass wir von HTTP/1.1 auf HTTP/2 umsteigen müssen.
`;

const nodejieba = require("nodejieba");
const result = nodejieba.extract(content, 20);
console.log(result);
Nach dem Login kopieren

Das Ausgabeergebnis ähnelt dem folgenden:

[ { word: 'HTTP', weight: 140.8704516850025 },
 { word: '请求', weight: 14.23018001394 },
 { word: '应该', weight: 14.052171126120001 },
 { word: '万维网', weight: 12.2912397395 },
 { word: 'TCP', weight: 11.739204307083542 },
 { word: '1.1', weight: 11.739204307083542 },
 { word: 'Web', weight: 11.739204307083542 },
 { word: '雪碧图', weight: 11.739204307083542 },
 { word: 'HTTPS', weight: 11.739204307083542 },
 { word: 'IP', weight: 11.739204307083542 },
 { word: '应用层', weight: 11.2616203224 },
 { word: '客户端', weight: 11.1926274509 },
 { word: '浏览器', weight: 10.8561552143 },
 { word: '拼接', weight: 9.85762638414 },
 { word: '比较', weight: 9.5435285574 },
 { word: '网页', weight: 9.53122979951 },
 { word: '服务器', weight: 9.41204128224 },
 { word: '使用', weight: 9.03259988558 },
 { word: '必要性', weight: 8.81927328699 },
 { word: '添加', weight: 8.0484751722 } ]
Nach dem Login kopieren

Wir fügen dem Wörterbuch einige neue Schlüsselwörter hinzu:

Leistung
HTTP/2

Die Ausgabeergebnisse lauten wie folgt:

[ { word: 'HTTP', weight: 105.65283876375187 },
 { word: 'HTTP/2', weight: 58.69602153541771 },
 { word: '请求', weight: 14.23018001394 },
 { word: '应该', weight: 14.052171126120001 },
 { word: '性能', weight: 12.61259281884 },
 { word: '万维网', weight: 12.2912397395 },
 { word: 'IP', weight: 11.739204307083542 },
 { word: 'HTTPS', weight: 11.739204307083542 },
 { word: '1.1', weight: 11.739204307083542 },
 { word: 'TCP', weight: 11.739204307083542 },
 { word: 'Web', weight: 11.739204307083542 },
 { word: '雪碧图', weight: 11.739204307083542 },
 { word: '应用层', weight: 11.2616203224 },
 { word: '客户端', weight: 11.1926274509 },
 { word: '浏览器', weight: 10.8561552143 },
 { word: '拼接', weight: 9.85762638414 },
 { word: '比较', weight: 9.5435285574 },
 { word: '网页', weight: 9.53122979951 },
 { word: '服务器', weight: 9.41204128224 },
 { word: '使用', weight: 9.03259988558 } ]
Nach dem Login kopieren

Auf dieser Basis verwenden wir eine Whitelist, um einige Wörter herauszufiltern, die als Tags verwendet werden können:

const content = `
Nach dem Login kopieren
Nach dem Login kopieren

HTTP, HTTP/2 und Leistungsoptimierung

Der Zweck dieses Artikels besteht darin, Ihnen durch einen Vergleich zu erklären, warum Sie von HTTP auf HTTPS migrieren sollten und warum Sie es zur HTTP/2-Unterstützung hinzufügen sollten. Bevor wir HTTP und HTTP/2 vergleichen, schauen wir uns zunächst an, was HTTP ist.

Was ist HTTP?

HTTP ist eine Reihe von Regeln für die Kommunikation im World Wide Web. HTTP ist ein Protokoll der Anwendungsschicht und läuft auf der TCP/IP-Schicht. Wenn ein Benutzer eine Webseite über einen Browser anfordert, ist HTTP für die Verarbeitung der Anfrage und den Aufbau einer Verbindung zwischen dem Webserver und dem Client verantwortlich.

Mit HTTP/2 kann die Leistung verbessert werden, ohne Sprite-Bilder, Komprimierung oder Spleißen zu verwenden. Dies bedeutet jedoch nicht, dass diese Techniken nicht verwendet werden sollten. Dies hat jedoch deutlich gezeigt, dass wir von HTTP/1.1 auf HTTP/2 umsteigen müssen.
`;

const nodejieba = require("nodejieba");
nodejieba.load({
 userDict: './user.utf8',
});
const result = nodejieba.extract(content, 20);
const tagList = ['HTTPS', 'HTTP', 'HTTP/2', 'Web', '浏览器', '性能'];
console.log(result.filter(item => tagList.indexOf(item.word) >= 0));
Nach dem Login kopieren

Endlich bekommen wir:

[ { word: 'HTTP', weight: 105.65283876375187 },
 { word: 'HTTP/2', weight: 58.69602153541771 },
 { word: '性能', weight: 12.61259281884 },
 { word: 'HTTPS', weight: 11.739204307083542 },
 { word: 'Web', weight: 11.739204307083542 },
 { word: '浏览器', weight: 10.8561552143 } ]
Nach dem Login kopieren

Das ist das Ergebnis, das wir wollen.

Das Obige ist die grundlegende Methode zur Verwendung der Wortsegmentierungsbibliothek nodejieba. In Zukunft können wir damit die von Zhongcheng Translation veröffentlichten Übersetzungen automatisch analysieren und entsprechende Tags hinzufügen, um Übersetzer und Leser bereitzustellen mit einer besseren Benutzererfahrung.

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung, wie Sie Node.js zum Segmentieren von Textinhalten und zum Extrahieren von Schlüsselwörtern verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage