平均感知器序列标签
Apertag的Python项目详细描述
apertag:平均感知器标记器
apertag是一种基于平均感知器模型的序列标签。在 为了避免对您的序列数据类型做出假设 标签或功能的格式是标记器的输入 只是特征值集的序列。每组值 表示接收标记的观察。特征值可以是任何 python类型,只要它可以被散列,但是需要注意的是 这些值仅以二进制方式使用,即 它们存在于被标记或不被标记的项目的上下文中;性质。 对决策没有影响。
一个简单的示例演示np chunker:
>>>t=Tagger()>>>t.train([[['POS=DT','WRD=the'],['POS=NN','WRD=dog']]],[['NP-B','NP-I']])>>>t.tag([['POS=DT','WRD=the'],['POS=NN','WRD=dog']])['NP-B','NP-I']
所有这些自由都有一个重要的例外: 任何希望使用实际输出标签的功能都需要 通过将它们的值格式化为带有特殊 将由来自 标记期间的当前上下文。标记格式为“<;tn>;”,其中n 是标记相对于当前的负索引 位置。例如,如果您正在培训POS标记器,并且 具有查看当前单词和上一个单词的功能 输出标签,当前单词是“dog”,功能可以是 编码为“<;T1>;:dog”。标记器将使用其 将标签上下文预测为“dt:dog”(取决于 你的标签集和功能格式。
举例说明具有输出标签功能的pos标记器:
>>>t=Tagger()>>>t.train([[['POS -1:<T-1>','W:the'],['POS -1:<T-1>','W:dog']]],[['DT','NN']])>>>t.tag([['POS -1:<T-1>','W:the'],['POS -1:<T-1>','W:dog']])['DT','NN']
使用这种格式进行培训很可能是一个好主意,因为 好吧,即使你(希望)自己有输出标签 这一点,以确保功能在整个培训中是相同的 和标记。
如果您的任何功能都不需要输出标记,则可以 稍微提高性能(特别是对于非字符串特性) 通过设置expand_features=false。
我应该把我的专栏放在哪里?
标记器模块可以作为独立脚本运行,它将 作为制表符分隔列的良好旧文件输入,其中每一行是 由特征值组成的观察,后跟 最后一列。有关详细信息,请运行:
$ python apertag.py {train,tag} -h