Pipe类与Instance类介绍

原文地址:Pipe类与Instance类介绍 作者:章芝青

抽象类pipe,是所有pipe类的父类,这些类的作用就是将数据从一种形式转成另一种形式。在特征提取阶段,pipe类是最常用的。

pipe类操纵Instance类,Instance类是描述数据的类,也是十分重要的一个类。

 

每一个Instance包括四个预定义的域,分别是:"data", "target", "name", 和"source"。

"Data" 保存着每个实例的数据表示

"target" 是一个与实例相关的标签

"name" 是每个实例的短的可识别的名字,就像文件名

"source" 是可读的源文件信息,就像初始的文本

每个域都没有预定义的类型,而是随着实例的处理在改变类型。举个例子,data域刚开始可是是string类型,表示文件名,然后随着pipe的类变成CharSequence表示文件的内容,最终变成特征向量,而特征向量则保留着按照字母表顺序在文件中的词表。它随着pipe类的处理变化着,最常见的是pipe类修改data域的值。

总的来说,有两种使用Instance的方式。(1)一个实例通过Pipe类来创建,并且通过Pipe类及子类产生data/target/name/source域的值,这通常在训练时做(2)实例产生原始的值在各个域中,然后不同的使用者,即各种Pipe类调用newPipedCopy()方法产生各自的实力,这通常在测试性能是用。

如果锁着的话,实例是不可改变的。而唯一可以改变实例四个域的值的是在Pipes中。也就是说只有Pipes类才能改变实例的值。

从Instance的源代码可以看出,类中只有属性,以及get、set方法,还有Iterator,write,read,shallowCopy以及构造器等方法,并不复杂,但十分重要。

 

Pipe类将Instance读入,然后处理,然后输出。其中最常被修改的是data域。Pipe类常与InstanceList类协做。Instance加入到队列中,然后依次通过pipe的处理,处理完又保留在list中。

FileIterator类通过在每个目录中遍历,将每个文件创建一个实例,将数据从文件中放入Instance的data域中。将文件的目录结构存储到实例的target域中,因为要求文件的组织按照类别标签归类。FileIterator将Instance放入到InstanceList中,而后者通过Pipe来处理各个Instance并保存结果。

Pipe类通常是层次性地组成。最典型的使用是SerialPipe类。SerialPipe类按照一个预先排好顺序的表将Instance一步一步处理。通过SerialPipe处理实例就像是处理实例通过一个个子Pipe类按照顺序。

一个Pipe有两个字母表,一张是数据域中的特征表,另一张是目标域中的特征表。

通过查看pipe的源文件,发现主要是构造器,getset字母表的方法,read,write,判断方法,处理字幕表,查找父节点,子节点等方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值