Включение узловых модулей для загрузки локального CSV-файла и запуска wink-naive-bayes-text-classifier - PullRequest
0 голосов
/ 26 июня 2018

Я только начал изучать Node.js и не могу понять, как загрузить данные из локального CSV-файла и использовать wink Наивный байесовский текстовый классификатор для изучения данных.

Iможно загрузить данные из локального 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>

1 Ответ

0 голосов
/ 16 июля 2018

Простой способ использования узловых модулей при работе в браузере - использовать browserify .В вашем рабочем каталоге:

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

Thisобъединит все необходимые вам модули в файл, который вызывает ваш HTML.Если вы не хотите каждый раз печатать так много, вы можете добавить скрипт npm .

...