【问题标题】:Learnig NER using category list使用类别列表学习 NER
【发布时间】:2017-09-19 12:31:44
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: machine-learning nlp named-entity-recognition crf crf++


    【解决方案1】:

    我想你说的是地名词典(dictionary.txt)。

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

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

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

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

    1) https://youtu.be/GJHeTvDkIaE

    2) https://youtu.be/Ur5umC4BwN4

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

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

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

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

    【讨论】:

    • stackoverflow.com/q/43410468/2096740 - 数据集和模板不适用于 crf++。您会建议数据集的其他哪些功能和改进。这将使 crf++ 工作的最佳方式非常清楚。在同一个数据集中,如果我必须包括地名词典,你能举一个修改的例子吗?
    • 你能分享你的测试数据吗?
    • 不多,很少上头条 - gist.githubusercontent.com/arjunmenon/…
    • 我对地名录部分不是很清楚。如果一个实体在地名词典中,我要在训练数据中包含1 or 0,为什么测试数据也应该表明这一点?有可能为模型提供了一个全新的实体,该实体不在地名词典中,在给定1 or 0 标签然后传递给 CRF 的情况下,首先通过地名词典运行每个实体听起来也不可行?这将变得更像是一个正则表达式类型验证。没有统计数据
    • 我对您的评论的回复很长,所以我无法评论它。我在这里写了我的回复:pastebin.com/L2kHRX51
    猜你喜欢
    • 1970-01-01
    • 2016-03-15
    • 2012-04-16
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 2017-11-08
    • 2017-06-27
    • 1970-01-01
    相关资源
    最近更新 更多