【问题标题】:Named Entity Recognition in NLP using Python使用 Python 进行 NLP 中的命名实体识别
【发布时间】:2019-01-03 04:07:39
【问题描述】:

我有很多简历文本文件。在这方面,有不同的日期格式可用,例如出生日期 - 12-12-1995,经验年 - 2000 年现在 1995-2005 5 年经验 1995/2005,加入日期 - 2015 年 3 月 5 日等。从这些数据中,我只想提取多年的经验。 如何在 Python 中使用 NLP 做到这一点?请回答。

我尝试了以下方法:

#This gives me all the dates from documents
import datefinder
data = open("/home/system/Desktop/samplecv/5c22fcad79fcc1.33753024.txt")
str1 = ''.join(str(e) for e in data)
matches = datefinder.find_dates(str1)
for match in matches:
    print(match)

【问题讨论】:

  • 我从不同的文件中得到了所有的日期。但我想要特定年份的经验日期。 @克劳斯 D.
  • 对不起,我没有问你的问题是什么,我问你有什么尝试解决的。在 SO 上,希望您首先尝试解决问题并与我们分享您的过程。
  • 我更新了我的帖子@Klaus D.

标签: python machine-learning nlp


【解决方案1】:

如果您已经提取了日期,那么您似乎缺少的是每个日期的“日期类型”。如果 datefinder 无法跟踪语料库中日期的位置结构,那么使用它进行日期提取就不会太有用了。

但是,这不仅仅是实体识别问题。您必须将 NER 与 POS 标记器(甚至可能是语法依赖解析器)配对,Spacy 是一个不错的选择。

你应该首先在你的语料库上运行一个词性标注器,看看它是否能找到像“经验”或“工作历史”这样的短语。如果没有,您应该为其添加自己的标签,以便它可以根据您的需要专门标记这些单词。

然后您可以运行 NER 来获取日期。请记住,NER 最多会将您的所有日期标记为 DATE 实体,并且无法找到这些日期类型之间的区别。

您必须使用某些语言语法或正则表达式将相应的日期链接到前面或后面的词性。

例如,您可以将单词 Experience 后面的所有日期与 Experience POS 标签相关联。

您也可以尝试 NLTK(它是 Spacy 的替代品,但您也需要使用它运行相同的管道)。阅读here了解更多信息。

【讨论】:

  • 如何匹配'experience'关键字之前或之后的日期? @HakunaMaData
  • 如果 datefinder 只是从语料库中提取日期,那么它不会非常有用。您需要的是 POS 标记、依赖解析以及 NER 的组合。我已经适当地编辑了我的答案。
  • 我是 Python 的新手。你能告诉我如何组合 POS Tagging 吗?和依赖解​​析与NER? @HakunaMaData
  • @Heena 你可以像 HakunaMaData 所说的那样从正则表达式开始,你的问题有点过于宽泛,无法在这里回答。
猜你喜欢
  • 2019-11-12
  • 2018-03-08
  • 2020-07-02
  • 1970-01-01
  • 1970-01-01
  • 2018-08-29
  • 2020-02-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多