NER是一种用于识别和分类文本中命名实体的信息提取技术。这些实体可以是预先定义的和通用的,比如位置名称、组织、时间等,或者它们可以非常具体,比如简历中的示例。NER在业务中有各种各样的应用。我认为,当你在写一封电子邮件,你在邮件中提到一个时间或者附加一个文件,gmail会提供设置一个日历通知,或者提醒你附加文件,以防你发送电子邮件时没有附加附件。NER的其他应用包括:从法律、金融和医疗文档中提取重要的命名实体、对新闻提供者的内容进行分类、改进搜索算法等。对于本文的其余部分,我们将简要介绍解决NER问题的不同方法,然后将跳转到实现最先进的NER方法。
NER方法:
- 经典方法:最通用的“基于规则”。以下是Sentdex提供的一个精彩的小视频链接,该视频使用python中的NLTK包实现NER。
- 机器学习方法:在这个类别中有两种主要的方法:A:将问题看作多类分类,其中命名实体是我们的标签,因此我们可以应用不同的分类算法。NER问题需要,识别和标记命名实体需要彻底理解句子的上下文和句子中单词标签的序列,这种方法忽略了这一点。B:这一类的另一种方法是条件随机场(CRF)模型。它是一种概率图模型,可用于对序列数据进行建模,如句子中的单词标签。有关用python实现CRF的更多细节和完整实现,请参阅Tobias的sarticle。CRF模型能够按顺序捕获当前和先前标签的特征,但是它不能理解正向标签的上下文;这个缺点加上训练CRF模型所涉及的额外特征工程,使得它不太适合于业界。
- 深度学习方法
Named entity recognition series:
- Introduction To Named Entity Recognition In Python
- Named Entity Recognition With Conditional Random Fields In Python
- Guide To Sequence Tagging With Neural Networks In Python
- Sequence Tagging With A LSTM-CRF
- Enhancing LSTMs With Character Embeddings For Named Entity Recognition
- State-Of-The-Art Named Entity Recognition With Residual LSTM And ELMo
- Evaluate Sequence Models In Python
- Named Entity Recognition with Bert