Java 自然语言处理.将非结构化书目转换为结构化元数据

Java 自然语言处理.将非结构化书目转换为结构化元数据,java,nlp,crf++,Java,Nlp,Crf++,目前正在从事一个自然语言处理项目,在该项目中,我需要将非结构化书目部分(位于研究文章的末尾)转换为结构化元数据,如“年”、“作者”、“期刊”、“卷ID”、“页码”、“标题”等 例如:输入 McCalum,A。;尼加姆,K。;和Ungar,L.H.(2000年)。高维数据集的高效聚类及其在参考匹配中的应用。在知识发现和数据挖掘方面,169–178 预期产出: 数据集:包含12000个引用 包含期刊标题 包含文章标题的文字 包含位置名称 给定行中的每个单词都被视为标记,对于每个标记,我派

目前正在从事一个自然语言处理项目,在该项目中,我需要将非结构化书目部分(位于研究文章的末尾)转换为结构化元数据,如“年”、“作者”、“期刊”、“卷ID”、“页码”、“标题”等


例如:输入

McCalum,A。;尼加姆,K。;和Ungar,L.H.(2000年)。高维数据集的高效聚类及其在参考匹配中的应用。在知识发现和数据挖掘方面,169–178

预期产出:


数据集:包含12000个引用

  • 包含期刊标题
  • 包含文章标题的文字
  • 包含位置名称

  • 给定行中的每个单词都被视为标记,对于每个标记,我派生出以下特征

  • BOR在生产线的起点
  • 终端提高采收率
  • digitFeature:如果令牌是数字
  • 年份:如果代币的年份格式为19**和20**
  • 在当前数据集中可用

  • 从上面的工具和数据集,我得到的准确率只有63.7%。“标题”的准确度很低,而“年份”和“数量”的准确度很高

    问题:

  • 我可以画一些附加的特征吗
  • 我可以使用其他工具吗

  • 我建议将解决方案建立在现有方法之上。例如,请看

    朴智星、宋熙、罗杰·W·埃里奇和爱德华·A·福克斯。“杂种 学科无关规范表示的两阶段方法 参考文献摘录。“第12届ACM/IEEE-CS联合会议记录 数字图书馆会议。ACM,2012年

    第3.2节和第4.2节提供了几十种功能的描述


    至于CRF实施,还有其他工具,如,但我不认为它是低精度的来源。

    尽管我大体上同意Nikita的观点,即任何特定的CRF工具集都不是低精度的来源,这是一个解决方案方法问题。我不确定Park等人演示的两阶段方法,虽然完成后非常准确有效,但是否是解决您问题的实用方法

    首先,本文中提到的“两个阶段”是一个成对的SVM/CRF,如果这不是你的主要研究领域,那么在飞行中就不那么容易设置。它们都涉及到对标记数据的培训,以及一定程度的调整

    第二,您的实际数据集(基于上面的描述)不太可能像此特定解决方案设计的那样在保持高精度的同时处理差异结构。在这种情况下,这种水平的监督学习是不必要的

    如果我可以提出一个领域特定的解决方案,其中包含许多相同的功能,无论您使用什么工具,都应该更容易实现,那么我会尝试一种(受限的)语义树方法,即半监督的,特别是建议异常(错误)的方法

    你的数据分子不是一个英语句子,而是一个书目条目。这个分子中必须存在的部分有作者部分、标题部分、日期部分和出版商部分,也可能有其他数据部分(页码、卷Id等)

    由于这些部分中的某些部分可能相互嵌套(例如,publisher部分中的page#)或以不同的排列顺序嵌套,但在操作上仍然有效,因此这是使用语义树的一个很好的指标

    此外,事实上,每个区域尽管变量都有其独特的特征:作者部分(人名格式,如Blow、J.或James等);标题部分(引用或斜体,具有标准句子结构);日期部分(日期格式,用()括起来,等等),意味着与标记化和非结构化分析相比,您需要的总体培训更少。最终,这将减少您的课程学习

    此外,还可以学习一些结构关系以提高准确性,例如:日期部分(通常在结尾或分隔关键部分)、作者部分(通常在开头,或在标题之后)等。许多协会和出版商都有其格式化此类参考的方式,这进一步证明了这一点,这些可以很容易地通过关系学习,而无需太多的训练数据

    总之,通过分割各个部分并进行结构化学习,您减少了每个子部分中的模式匹配,并且学习被降级为关系模式,这更可靠,因为这就是我们构建人类这类条目的方式

    还有很多工具可以用于这种特定领域的语义学习


    希望对您有所帮助:)

    您可能需要提供一整套示例字符串,以显示书目条目的各种格式。如果每个条目都有完全相同的格式,那么举一个例子就可以了,但我怀疑您在这些参考书目条目中看到了过多不同的结构,因此更完整的示例集将帮助人们提出提取所需数据的方法。