从非结构化文本中提取键值的方法有哪些?

时间:2019-05-31 07:55:11

标签: regex machine-learning nlp information-extraction ner

我正在尝试找出在非结构化文本中为预定义键提取值的方法(以及哪种方法最好)?

输入:

  1. 医生给我开了一种名为favipiravir的药物。
  2. 他的名字叫Yury。
  3. 伊利亚(Ilya)已经告诉过我。
  4. 今天天气很冷。
  5. 我正在吃一种叫做nazivin的药。

键列表:['药物','名称','天气']

输出:

['drug = favipiravir','drug = nazivin','name = Yury','weather = cold']

因此,如您所见,在3d句子中没有显式键“名称”,因此也没有提取值(我认为与NER有所不同)。同时,“ drug”和“ medicine”是同义词,我们应该将“ medicine”作为“ drug”键,并提取其值。

接下来的问题是,如果密钥集是可变的,该怎么办? 是否应该由于预定义的键而将其用作基础正则表达式方法,还是可以通过监督学习/ NN来实现它? (但是在这种情况下,如何处理可变键?)

1 个答案:

答案 0 :(得分:1)

您可以使用解析器标记病房。您的问题类似于命名实体识别。许多库都提供POS标记器。您可以尝试那些。通常对它们进行培训以识别名称,位置等。根据您需要的单词类型,您可能需要训练解析器。因此,您还需要一些标记数据。
查看此链接: https://nlp.stanford.edu/software/CRF-NER.html