首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用神经网络进行文本转换

用神经网络进行文本转换
EN

Stack Overflow用户
提问于 2015-02-19 16:39:34
回答 2查看 431关注 0票数 1

我以前使用过神经网络,但只是为了好玩,主要是使用归一化分类(Enum)、数字和位(Bool)值。我知道NNs很难理解字符,但我想知道他们是否能理解如何转换文本。

例如,是否有可能训练NN做以下工作:

  • 13/20 = 20
  • aa/bb = bb
  • 20/10 = 10

或(d改为f)

  • abcde = abcfe
  • tdfg = tffg
  • [医]

如果是,有多可靠?或者也许有更适合这份工作的东西?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-10 11:31:44

这个问题与实现无关,但由于我刚刚完成了一个类似主题的实验室,以下是一些实用技巧:

使用RNN网络以这种方式对文本进行转换是非常可能的,也是非常容易的。克隆此(https://github.com/karpathy/char-rnn)存储库,并将其训练为数据/文件夹/input.txt中的文件,其大小与您希望输出的格式相同:

代码语言:javascript
复制
abcde = abcfe
tdfg = tffg
ddhj = ffhj

使用此命令训练:

代码语言:javascript
复制
th train.lua -data_dir data/folder

在测试网络时,它应该能够根据您提供的种子文本生成正确的输出:

代码语言:javascript
复制
th sample.lua cv/[latest_sample] -primetext "abcd" -length 7

应能生产出下列产品:

代码语言:javascript
复制
abcd = abcf
票数 1
EN

Stack Overflow用户

发布于 2015-02-20 10:07:55

一切都取决于转换的复杂性。如果你对这些例子感兴趣,那么,当然是的,这是可行和可靠的。第二个例子是很简单的,你只是表示NN一个字符,将输入和输出编码为一个热向量(每个字符一个神经元),它将完成这项工作。第一个例子可以通过将左和右部分转换成一个热输入向量来解决,它表示两个符号的所有可能组合中的一个,并且具有两个输出,要求NN选择是否应该选择第一部分或第二部分(存在更好的编码输入的方法,特别是对于长字符串)。只要你有足够的训练例子,一切都应该正常工作。

一般来说,NNs很难处理文本的日子已经过去了。现在可以训练NNs进行机器翻译(比任何其他方法都好),甚至在某种程度上,可以训练它来预测基于程序字符串的简单计算机程序的输出(但对于NNs来说,这仍然是一项困难的任务)。

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

https://stackoverflow.com/questions/28611859

复制
相关文章

相似问题

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