自然语言处理(一)RNN在做语义分析

    这个例子是deeplearnling/tutorial/rnnslu.html中的例子。

  1. 任务:

    The Slot-Filling (Spoken Language Understanding) consists in assigning a label to each word given a sentence. It’s a classification task.

    口语理解是为给定的一个句子分配标签。是一个分类问题。

数据集

  采用的数据集是ATIS (Airline Travel Information System) dataset,是一个文本的数据分类的数据集,是根据航天公司电话预约时的电话记录,已通过语音处理转成了文字,采用(IOB)的表示方式。

IOB的表示方式:B是表示一个类的开始,I是表示一个类的中间,O是表示空类。如下表示:

Input (words)showflightsfromBostontoNewYorktoday
Output (labels)OOOB-deptOB-arrI-arrB-date

        The ATIS offical split contains 4,978/893 sentences for a total of 56,590/9,198 words (average sentence length is 15) in the train/test set. The number of classes (different slots) is 128 including the O label (NULL).

         ATIS官方把整个数据集分为训练集/测试集--4978/893个句子,一共有56590/9198单词(平均每一个句子有15个单词)。分为128个类,里面包含了O(空类)。

         如果没有出现的词用<UNK>类表示。

         对数据分类的准确性用如下三个指标:Precision(精度),Recall(召回率),F1 score 。这个百度一下就知道了,简单地说,这三个都能表示分类准确率,满分是100,其中Precision,Recall有一定互斥性,故F1 score,是最好的。

        我们还可以使用conlleval.pl 的PERL程序看出分类后的结果。

        如下图:

 

RNN模型与数据处理

    数据表示:每一个单词一开始的代表是一个token,编程表示为一个数字,一句话就是多个数字组成的,这是输入表示,不过不是最终表示,输出对应的一个标签。

155348_CQZR_2280056.png

        上下文窗口:

    The index -1 corresponds to the PADDING index we insert at the beginning/end of the sentence.

155750_ilKW_2280056.png

        从上可以看出,窗口设的越大,数据长度越长。

        词向量:

        词向量是很有创新性的表示方式,一个单词表示如果用One-hot Representation,如,

       “话筒”表示为 [0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 …]
  “麦克”表示为 [0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 …]

        其中只有一个为1,有很多有缺陷,故有了词向量。把一个词表示成[0.792, −0.177, −0.107, 0.109, −0.542, …]。维度以 50 维和 100 维比较常见。这个词向量不是固定的,也是要经过训练得到的。

        RNN要学习的参数:

        161154_HeSB_2280056.png

        RNN整个架构设置好的参数:

       161314_Nbyg_2280056.png

跑程序164620_Yssj_2280056.png

   

转载于:https://my.oschina.net/peterlie/blog/541631

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值