处理神经网络输入的文本字符串

Æle*_*lex 25 preprocessor normalize standardized textinput neural-network

我知道人工神经网络输入必须标准化,标准化等.除了各种人工神经网络的特性和模型之外,我如何在{0,1}范围内或者在范围{-1之间预处理UTF-8编码文本. 1}在它作为神经网络的输入之前?我一直在谷歌搜索这个,但找不到任何信息(我可能使用错误的术语).

  1. 那有意义吗?
  2. 是不是如何为神经网络预处理文本?
  3. 还有其他选择吗?

编辑2013年11月20日:

我一直认为皮特的答案是正确的.然而,我有严重的疑虑,主要是由于我最近对符号知识和ANN的研究.

Dario Floreano和Claudio Mattiussi在他们的书中解释说,通过使用分布式编码,这种处理确实是可行的.

事实上,如果你尝试谷歌学者搜索,存在大量的神经科学文章和论文,关于如何假设分布式编码被大脑用来编码符号知识.

Teuvo Kohonen在他的论文" Self Organizing Maps "中解释说:

有人可能会认为将神经适应法应用于符号集(被视为一组矢量变量)可能会创建一个显示符号之间"逻辑距离"的地形图.然而,与连续数据相比,出现了符号的不同性质的问题.对于后者,相似性总是以自然的方式显示,作为其连续编码之间的度量差异.对于没有定义度量的离散符号项(例如单词),这不再适用.符号的本质是它的意义与其编码分离.

然而,Kohonen确实设法处理SOM中的符号信息!

此外,Alfred Ultsch博士在他的论文" 神经网络与符号知识处理的整合 "中完全阐述了如何在ANN中处理符号知识(如文本).Ultsch提供以下处理符号知识的方法:神经近似推理,神经统一,内省和综合知识获取.虽然谷歌学者或其他任何地方的人都可以找到很少的信息.

皮特在他的回答中是关于语义的.人工神经网络中的语义通常是断开的.然而,下面的参考,提供了洞察研究人员如何使用RBM,训练识别不同单词输入的语义相似性,因此它不应该是不可能有语义,但需要分层方法,或者如果需要语义,则需要辅助ANN .

使用子符号神经网络进行自然语言处理,Risto Miikkulainen,1997 训练受限制的Boltzmann机器进行单词观察,GEDahl,Ryan.P.Adams,H.Rarochelle,2012

Pet*_*ete 18

我将继续并在此总结我们的讨论作为答案.

您的目标是能够将文本合并到您的神经网络中.我们已经确定传统的人工神经网络并不适合分析文本.对此原因的基本解释是基于以下观点:人工神经网络对输入进行操作,这些输入通常是连续的值范围,输入的两个值的接近度意味着它们意义上的某种接近.单词没有这种接近的概念,因此,对于作为ANN输入有意义的单词,没有真正的数字编码.

另一方面,可能有效的解决方案是使用更传统的语义分析,该分析可能产生主题列表的情感范围,然后这些主题及其情感值可能用作ANN的输入.


Jer*_*wen 10

回答你的意见,不,你提出的计划没有多大意义.由其性质输出的人造神经元表示连续或至少二进制值.在巨大的离散枚举(如UTF-8字符)和浮点值表示的连续范围之间进行映射是没有意义的.人工神经网络必将像0.1243573是一个非常好的近似值0.1243577当这些数字可以很容易地被映射到换行符和字符"A",例如,这将不会是很好的近似为对方所有.

坦率地说,"一般unicode字符串"作为ANN的输入没有合理的表示.合理的表示取决于您正在做的事情的具体情况.这取决于您对以下问题的回答:

  • 您是否期望在输入字符串中显示单词而不是字符块?你希望在字符串中出现什么词?
  • 输入字符串的长度分布是多少?
  • 输入字符串的预期熵是多少?
  • 您是否有任何关于字符串外观的领域特定知识?

最重要的是

  • 你想用ANN 什么?这不是你可以忽略的.

它可能你可能有一个没有翻译的设置,它实际上可以让你用神经网络你想做的事情.直到你回答这些问题(你在上面的评论中绕过它们),就不可能给出一个好的答案.

我可以给出一个示例答案,如果您碰巧给出了上述问题的某些答案,那将会奏效.例如,如果您正在阅读具有任意长度的字符串但由空格分隔的单词词汇组成,那么我建议您使用N个输入的翻译方案,对于词汇表中的每个单词使用一个,并使用循环神经网络通过将相应的输入设置为1而将所有其他输入设置为0,一次一个地输入.

  • 好的,那么如果单词的含义是重要的,那么就没有真正的方法可以在标准的神经网络中对其进行编码.假设您将输入编码为基于ASCII的缩放.所以每个输入都是一个字母.然后,根据你的网络,DOG和EOG非常相似,因为从数字上看,它们会非常接近.但在英语中,DOG是一个单词而EOG只是字母的随机组合.没有近在咫尺.输入和输出是连续的,并且具有接近的概念.没有办法将文本翻译成这种框架. (3认同)
  • 那么,再次,它是关于输入和输出的含义.如果您将单词编码为某种值,那么单词本身是否具有接近的属性?也就是说,如果你(而不是在某个固定的时间间隔,因为,记住,你的输出范围连续)获取映射到中途两个词之间的输出值,将它还有没有意义?"好"和"黄色"之间的价值中途是什么意思?如果单词中的含义不能有一些接近的想法,那那就行不通.您可以做的是具有表示单词存在的布尔输入. (2认同)
  • @Alex,您可能想要研究语义分析算法.我对它们了解不多,但我猜你可以找到适合你特殊需求的算法.有时像cna这样的东西用于将输入馈送到神经网络中.也就是说,它可能能够执行一种分析,该分析可以为您提供值,然后将其作为神经网络模型的输入.例如,您可能有一个关于该主题的主题和情绪.然后,网络输入可以与该主题相关联,并且值可以是标准化的情绪. (2认同)

swa*_*ami 7

我认为将文本(在角色级别编码)提供给深层信念网络,以查看它可以发现的语言属性是非常有趣的.

最近在神经网络语言建模方面做了很多工作(主要是在单词级别,但也在角色级别)

有关详细信息,请参阅这些链接

http://www.stanford.edu/group/pdplab/pdphandbook/handbookch8.html http://code.google.com/p/word2vec/

单词向量通过大型维基百科文章等的训练进行编码.并且能够获得语义和句法特征,这允许在它们之间定义"距离""

"最近证明,单词向量捕获了许多语言规律,例如向量操作向量('王') - 向量('man')+向量('女人')接近向量('女王')"

另请参阅Ilya Sutskever撰写的关于生成随机字符的优秀研究论文,该论文在维基百科上进行培训后展示了英语的特征.太棒了!

http://www.cs.toronto.edu/~ilya/pubs/2011/LANG-RNN.pdf http://www.cs.toronto.edu/~ilya/rnn.html(在线文本生成文本演示 - 非常凉!)