【问题标题】:metric learning for information retrieval in semi-structured text?半结构化文本信息检索的度量学习?
【发布时间】:2015-08-28 10:31:48
【问题描述】:

我对解析半结构化文本很感兴趣。假设我有一个带有此类标签的文本:year_fieldyear_valueidentity_fieldidentity_value、...、address_fieldaddress_value 等等。

这些字段及其关联值可以在文本中的任何地方出现,但通常它们彼此靠近,更一般地,文本以(非常)粗略的矩阵组织,但通常值就在关联之后字段之间最终会包含一些不感兴趣的信息。

不同格式的数量可以多达几​​十个,而且没有那么死板(不要指望间距,而且可以添加和删除一些信息)。

我正在寻找机器学习技术来提取所有感兴趣的(字段、值)。

我认为度量学习和/或条件随机场 (CRF) 可能会有很大帮助,但我没有这方面的实践经验。

有人遇到过类似的问题吗?

关于这个主题的任何建议或文献?

【问题讨论】:

标签: parsing machine-learning information-retrieval information-extraction


【解决方案1】:

如果我理解正确,您的任务是从文本中提取所有预定义的实体。你在这里描述的正是named entity recognition

斯坦福有一个Stanford Named Entity Recognizer,您可以下载和使用(python/java 等)

关于您考虑的模型(例如 CRF) - 这里的难点是获取训练数据 - 带有已标记实体的句子。这就是为什么你应该考虑获得一个经过训练的模型,或者使用其他人的数据来训练你的模型(同样,模型将只识别它在训练部分看到的实体)

nltk 的 Information Extraction module 是 Python 中已经训练模型的绝佳选择。

希望总结一下

【讨论】:

  • 谢谢。然而,我的问题有点不同。根据数据源的不同,同一个词,比如“数量”可能指代不同的含义,例如一些元素或一个价格,和下面的值可能无助于区分。但是,我可以依靠大致相同的文本结构,这就是为什么我认为 CRF 或度量学习会做:“知道在“数量”之前我处于状态 X,“数量”在这里意味着价格。
  • 好的,但是您要使用哪些(标记的)数据来训练它?
  • 我已经编写了一个基于字典的半通用解析器,它可以提取这些对,我可以将它用于注释。但是,由于上述问题,我仍然可以使用正则表达式修补一些小错误。然而,我想要一种更通用的方法(处理最终的新格式)。因此,我可以依靠一些我可以生成的注释(使用不太通用的方法)。
猜你喜欢
  • 2017-12-17
  • 2017-10-25
  • 1970-01-01
  • 2017-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-06
  • 2012-06-05
相关资源
最近更新 更多