0

在用于培训 CRF++ 的模板中,我如何包含一个dictionary.txt用于上市公司的自定义文件,另一个用于流行欧洲食品的自定义文件,例如,或几乎任何类别。

然后为每个类别提供样本训练数据,从而了解这些特定命名实体如何在该类别的上下文中使用。
通过这种方式,我和系统可以确保它正确理解某些命名实体在文本中的结构,无论是推文还是普利策获奖新闻文章,而不是提供数百兆字节的数据。

这会很酷。模型将有一个明确的已知实体字典(不需要扩展)和一个关于这些已知实体如何在人类文本中结构化的统计方法。

PS - 只是为了清楚起见,而不是渴望正则表达式。只有当你在字典里有很多东西,很多规则和很多无聊的时间时,这些才是很酷的。

4

1 回答 1

1

我认为您所说的是地名词典(dictionary.txt)。

您必须在训练数据中包含一个单词的相应特征,然后在模板文件中指定它。

例如:您的列表包含实体:Hershey's 并且训练数据有一句话:I like Hershey's chocolates.

因此,当您以 CoNLL 格式(对于 CRF++)排列数据时,您可以添加一个列(其值应为 0 或 1 ,表示该词存在于字典中),除 Hershey 的所有词外,该列的值均为 0。您还必须将此列作为特征包含在模板文件中。

为了更好地理解 CRF++ 的模板文件和 NER 训练,您可以观看以下视频并评论您的疑问 :)

1) https://youtu.be/GJHeTvDkIaE

2) https://youtu.be/Ur5umC4BwN4

编辑:(查看OP的评论后)

具有额外功能的样本训练数据:https ://pastebin.com/fBgu8c67 我添加了 3 个功能。特征值(IsCountry1 或 0 )可以从 Gazetteers 国家列表中获得。其他 2 个特征可以离线计算。请注意,文件中添加的标头仅供参考,不应包含在训练数据文件中。

上述数据的示例模板文件:https ://pastebin.com/LPvAGCVL

请注意,测试数据也应采用与训练数据相同的格式,具有相同的特征/相同的列数。

于 2017-05-08T06:05:57.380 回答