- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个电影推荐系统。我的推荐引擎是用 Python 编写的。我通过 node.js (Express) 从网站运行它。
Python 代码本身可以工作,这是我从控制台运行它时的输出。它使用 pandas 和 numpy 进行计算,它返回一个矩阵,其中包含电影标题及其与所选电影的相似度,我还打印 hello:
在我的网站上,我的正文中有以下HTML:
<form class="test" method="post" action="/test">
<input type="text" name="user[name]">
<input class="button" type="submit" value="Submit">
</form>
JS客户端
(function($) {
$(document).ready(function () {
var btn = $('.button'),
input = $('input');
btn.on('click', function() {
e.preventDefault();
})
})
})(jQuery)
JS服务器端,带有Express
var express = require('express');
var app = express();
var path = require('path');
var bodyParser = require('body-parser');
var PythonShell = require('python-shell');
var options = {
mode: 'text',
pythonOptions: ['-u'],
scriptPath: "E:/Praca Magisterska/Python",
};
app.use(express.static(path.join(__dirname, '')));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.get('/', function (req, res) {
res.sendFile(path.join(__dirname+'/index.html'));
})
app.post('/test', function (req, res) {
console.log(req.body);
PythonShell.run('similarMovies.py', options, function (err, results) {
if (err) throw err;
// results is an array consisting of messages collected during execution
console.log('results: %j', results);
});
})
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
})
那么,它是如何工作的。单击“提交 btn”后,我将触发 Node.js 来运行 Python 脚本,然后使用 console.log
结果。不幸的是我遇到了错误,图片在最后。
但是,当我不运行函数时,我会在 Python 末尾编写:
print "hello"
print 2
代码结果解析良好。
可能有什么问题?我在函数内除以零和其他时遇到的错误?但如果是的话,为什么当我直接从 cmd 运行它时它就可以工作 - python likeMovies.py
这是python代码:
# -*- coding: utf-8 -*-
import pandas as pd
import numpy as np
def showSimilarMovies(movieTitle, minRatings):
# import ratingów z pliku csv
rating_cols = ['user_id', 'movie_id', 'rating']
rating = pd.read_csv('E:/Praca Magisterska/MovieLens Data/ratings.csv', names = rating_cols, usecols = range(3))
# import filmów z pliku csv
movie_cols = ['movie_id', 'title']
movie = pd.read_csv('E:/Praca Magisterska/MovieLens Data/movies.csv', names = movie_cols, usecols = range(2))
# łączenie zaimportowanych ratingów oraz filmów, usuwanie pierwszego wiersza
ratings = pd.merge(movie, rating)
ratings = ratings.drop(ratings.index[[0]])
# konwertowanie kolumn ze stringów na numeric
ratings['rating'] = pd.to_numeric(ratings['rating'])
ratings['user_id'] = pd.to_numeric(ratings['user_id'])
# tworzenie macierzy pokazująceje oceny filmów przez wszystkich użytkowników.
movieRatingsPivot = ratings.pivot_table(index=['user_id'], columns=['title'], values='rating')
# filtrowanie kolumny do obliczania filmów podobnych
starWarsRating = movieRatingsPivot[movieTitle]
# obliczanie korelacji danego filmu z każdym innym i wyrzucanie tych z którymi nic go nie łączy
similarMovies = movieRatingsPivot.corrwith(starWarsRating)
similarMovies = pd.DataFrame(similarMovies.dropna())
# zmiana nazwy kolumny oraz sortowanie według rosnącej korelacji
similarMovies.columns = ['similarity']
similarMovies.sort_values(by=['similarity'], ascending=False)
# tworzenie statystyk dla filmów, size to ilość ocen, a mean to średnia z ocen
# zgrupowane po tytułach
movieStats = ratings.groupby('title').agg({'rating': [np.size, np.mean]})
# popularne filmy, które mają więcej niż 100 ocen
popularMovies = movieStats['rating']['size']>=minRatings
# sortowanie popularnych filmów od najwyższej średniej
movieStats[popularMovies].sort_values(by=[('rating', 'mean')], ascending=False)
# łączenie popularnych filmów z filmami podobnymi do filtrowanego filmu i ich sortowanie
moviesBySimilarity = movieStats[popularMovies].join(similarMovies)
x = moviesBySimilarity.sort_values(by='similarity', ascending=False)
k = x.drop(x.columns[[0, 1]], axis = 1)
k = k.drop(x.index[[0]])
return k
print "hello"
print 2
showSimilarMovies('Star Wars: Episode VI - Return of the Jedi (1983)', 300)
最佳答案
我想通了,只需在 python 文件的开头添加两行即可忽略警告:
import warnings
warnings.filterwarnings('ignore')
现在我的输出就是所需的。
关于javascript - 从 node.js 运行 Python 脚本时出现 parseError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43822389/
我正在学习构建单页应用程序 (SPA) 所需的所有技术。总而言之,我想将我的应用程序实现为单独的层,其中前端仅使用 API Web 服务(json 通过 socket.io)与后端通信。前端基本上是
当我看到存储在我的数据库中的日期时。 这是 正常 。日期和时间就是这样。 但是当我运行 get 请求来获取数据时。 此格式与存储在数据库 中的格式不同。为什么会发生这种情况? 最佳答案 我认为您可以将
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我正在尝试使用backbone.js 实现一些代码 和 hogan.js (http://twitter.github.com/hogan.js/) Hogan.js was developed ag
我正在使用 Backbone.js、Node.js 和 Express.js 制作一个 Web 应用程序,并且想要添加用户功能(登录、注销、配置文件、显示内容与该用户相关)。我打算使用 Passpor
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
我尝试在 NodeJS 中加载数据,然后将其传递给 ExpressJS 以在浏览器中呈现 d3 图表。 我知道我可以通过这种方式加载数据 - https://github.com/mbostock/q
在 node.js 中,我似乎遇到了相同的 3 个文件名来描述应用程序的主要入口点: 使用 express-generator 包时,会创建一个 app.js 文件作为生成应用的主要入口点。 通过 n
最近,我有机会观看了 john papa 关于构建单页应用程序的精彩类(class)。我会喜欢的。它涉及服务器端和客户端应用程序的方方面面。 我更喜欢客户端。在他的实现过程中,papa先生在客户端有类
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我是一个图形新手,需要帮助了解各种 javascript 2D 库的功能。 . . 我从 Pixi.js 中得到了什么,而我没有从 Konva 等基于 Canvas 的库中得到什么? 我从 Konva
我正在尝试将一些 LESS 代码(通过 ember-cli-less)构建到 CSS 文件中。 1) https://almsaeedstudio.com/ AdminLTE LESS 文件2) Bo
尝试查看 Express Passport 中所有登录用户的所有 session ,并希望能够查看当前登录的用户。最好和最快的方法是什么? 我在想也许我可以在登录时执行此操作并将用户模型数据库“在线”
我有一个 React 应用程序,但我需要在组件加载完成后运行一些客户端 js。一旦渲染函数完成并加载,运行与 DOM 交互的 js 的最佳方式是什么,例如 $('div').mixItUp() 。对
请告诉我如何使用bodyparser.raw()将文件上传到express.js服务器 客户端 // ... onFilePicked(file) { const url = 'upload/a
我正在尝试从 Grunt 迁移到 Gulp。这个项目在 Grunt 下运行得很好,所以我一定是在 Gulp 中做错了什么。 除脚本外,所有其他任务均有效。我现在厌倦了添加和注释部分。 我不断收到与意外
我正在尝试更改我的网站名称。找不到可以设置标题或应用程序名称的位置。 最佳答案 您可以在 config/ 目录中创建任何文件,例如 config/app.js 包含如下内容: module.expor
经过多年的服务器端 PHP/MySQL 开发,我正在尝试探索用于构建现代 Web 应用程序的新技术。 我正在尝试对所有 JavaScript 内容进行排序,如果我理解得很好,一个有效的解决方案可以是服
我是 Nodejs 的新手。我在 route 目录中有一个 app.js 和一个 index.js。我有一个 app.use(multer....)。我还定义了 app.post('filter-re
我正在使用 angular-seed用于构建我的应用程序的模板。最初,我将所有 JavaScript 代码放入一个文件 main.js。该文件包含我的模块声明、 Controller 、指令、过滤器和
我是一名优秀的程序员,十分优秀!