首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用brain.js神经网络进行文本分析

用brain.js神经网络进行文本分析
EN

Stack Overflow用户
提问于 2016-05-05 06:10:23
回答 3查看 9.9K关注 0票数 12

我试着做一些文本分析来确定一个给定的字符串是否.谈论政治。我想我可以创建一个神经网络,输入要么是字符串,要么是单词列表(排序可能很重要?)输出结果是字符串是否与政治有关。

然而,brain.js库只接受0到1之间的数字输入或0到1之间的数字数组。我如何才能以一种能够完成任务的方式强制我的数据?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-03-17 19:18:42

代码语言:javascript
复制
new brain.recurrent.LSTM(); 

这对你有好处。

例如,

代码语言:javascript
复制
var brain = require('brain.js')
var net = new brain.recurrent.LSTM();
net.train([
  {input: "my unit-tests failed.", output: "software"},
  {input: "tried the program, but it was buggy.", output: "software"},
  {input: "i need a new power supply.", output: "hardware"},
  {input: "the drive has a 2TB capacity.", output: "hardware"},
  {input: "unit-tests", output: "software"},
  {input: "program", output: "software"},
  {input: "power supply", output: "hardware"},
  {input: "drive", output: "hardware"},
]);

console.log("output = "+net.run("drive"));


output = hardware

参考这个link=> https://github.com/BrainJS/brain.js/issues/65,这里有对brain.recurrent.LSTM()的明确解释和用法

票数 16
EN

Stack Overflow用户

发布于 2016-05-05 06:26:22

您需要提出一个模型来将您的数据转换为元组[input, expected_output]列表,其中input是表示给定单词的0到1之间的数字列表,output是一个介于0到1之间的数字,表示句子与客观分析的距离(具有政治性)。例如,对于“飞快的棕色猫跳过懒惰的狗”这句话,你可能要给零分。像“总统摆脱腐败丑闻”这样的句子,你可以给一个非常接近1分的分数。

正如您所看到的,您最大的挑战实际上是获取数据并清理它。将其转换为培训格式很容易,您只需将单词散列为0到1之间的数字,并确保处理不同的大小写、标点符号,并且您可能希望分步操作单词以获得最佳效果。

还有一件事是,您可以使用术语关联算法对训练数据集中的单词的重要性进行排序,这样您就可以只选择句子中最重要的k相关单词,因为每个句子都需要统一的数据大小。

票数 2
EN

Stack Overflow用户

发布于 2016-05-05 08:14:06

因此,显然文本对NN输入没有很好的强制作用。

一个朴素的贝叶斯分类器看起来和我想要的一模一样。https://github.com/harthur/classifier

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37043598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档