在上周要求并被建议使用两种软件(用于训练模型以对字符串的块进行分类)之后,我现在正在努力使用其中任何一种。
似乎在机器学习中(或者至少使用 CRF?),您不能只直接在训练数据上进行训练,而是必须先经过一个中间步骤。¹
来自 CRFsuite 教程:
下一步是对训练和测试数据进行预处理,以提取表示数据中单词(项目)特征的属性。CRFsuite 在内部从数据集中的属性生成特征。一般来说,这是机器学习方法中最重要的过程,因为特征设计极大地影响了标注的准确性。
Wapiti 不需要创建这样的属性文件,我认为因为它具有“模式”,而不是看起来比 CRFsuite 的中间格式文件更复杂。
举个例子:给定大量(数万个)字符串,例如这三个:
Michael went to his room.Did you know Jessica's mom used to be with the military?Amanda! Come back inside! We'll have dinner soon!
从中手动创建了少量(几千)标记的训练和测试数据,例如这个块(对于上面的第一个示例):
T Michael
K went
K to
K his
K room
S .
K Did
K you
K know
T Jessica's
K mom
K used
K to
K be
K with
K the
K military
S ?
T Amanda
S !
K Come
K back
K inside
S !
K We'll
K have
K dinner
K soon
S .
(T对于名称,K对于非名称,S对于标点符号,N对于数字。)
我如何确定“属性”应该是什么,以便能够创建与 CRFsuite 教程chunking.py中使用的脚本等效的脚本?
¹:关于那个中间步骤,Naoaki Okazaki 使用的术语我不清楚。“特征”和“属性”可以互换使用,似乎是指数据中包含的不可见的东西。“标签”可能是放置标记的类别,然后还有“观察”。