包括节点模块以加载本地CSV文件并运行wink-naïve-bayes-text-classifier



我刚开始学习Node.js,无法弄清楚如何从本地CSV文件加载数据并使用wink Naive Bayes文本分类器来学习数据。

我可以使用此示例从本地CSV文件加载数据。但问题是我不知道如何将wink朴素贝叶斯库加载到客户端 JS。有没有办法在我下面写的脚本中包含节点的模块(如wink(?

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test Naive Bayes</title>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<script src="./papaparse.min.js"></script>
</head>
<body>
<input type="file" id="csv-file" name="files"/>
</body>
<script>
// REF: https://www.joyofdata.de/blog/parsing-local-csv-file-with-javascript-papa-parse/
// http://archive.is/ySSC8
var data;
function handleFileSelect(evt) {
var file = evt.target.files[0];
Papa.parse(file, {
header: true,
dynamicTyping: true,
complete: function(results) {
data = results;
}
});
}
$(document).ready(function(){
$("#csv-file").change(handleFileSelect);
});
</script>
</html>

在浏览器中工作时使用节点模块的一种简单方法是使用浏览器化。在工作目录中:

npm install wink-naive-bayes-text-classifier --save
npm install -g browserify

您必须将代码移动到单独的脚本文件中,例如process-data.js。而且,从你的HTML中,你将包含一个不同的脚本 -bundle.js(我们将在最后讨论(:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test Naive Bayes</title>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<script src="./papaparse.min.js"></script>
</head>
<body>
<input type="file" id="csv-file" name="files"/>
<script src="bundle.js"></script>
</body> 
</html>

在您的process-data.js中,您现在可以简单地require库,如其文档中所示。

// REF: https://www.joyofdata.de/blog/parsing-local-csv-file-with-javascript-papa-parse/
// http://archive.is/ySSC8
// Load Naive Bayes Text Classifier
var Classifier = require( 'wink-naive-bayes-text-classifier' );
// Instantiate
var nbc = Classifier();
var data;
function handleFileSelect(evt) {
var file = evt.target.files[0];
Papa.parse(file, {
header: true,
dynamicTyping: true,
complete: function(results) {
data = results;
// You can now use nbc and data :)
// nbc.learn(data[0]);
}
});
}
$(document).ready(function(){
$("#csv-file").change(handleFileSelect);
});

最后,要创建bundle.js文件,您将运行 browserify:

browserify process-data.js -o bundle.js

这会将您需要的所有模块捆绑到您的 HTML 正在调用的文件中。如果您不想每次都键入太多内容,可以考虑添加 npm 脚本。

最新更新