NLP - 命名实体识别

时间:2017-09-27 04:23:38

标签: java nlp named-entity-recognition

命名实体识别(NER)在其中使用了什么算法?我的意思是它如何匹配之前用查询数据标记的所有实体?

4 个答案:

答案 0 :(得分:2)

NER可以通过不同的算法执行,从使用grep:http://labs.fc.ul.pt/mer/的简单字符串匹配到高级机器学习技术:https://nlp.stanford.edu/software/CRF-NER.shtml

答案 1 :(得分:2)

基本上,有很多名为实体识别的算法,但是最著名的是 使用条件随机场(CRF)算法。

  1. Stanford CoreNLP for Java
  2. Spacy
  3. NLTK

另一种最有效的方法是使用深度学习,例如递归神经网络(LSTM)。

  1. http://nlp.town/blog/ner-and-the-road-to-deep-learning/
  2. https://towardsdatascience.com/deep-learning-for-ner-1-public-datasets-and-annotation-   方法-8b1ad5e98caf 还有很多其他文章和纸张 希望这会有所帮助:)

答案 2 :(得分:1)

基本上,这取决于您遵循的方法。

用于名称实体识别的方法有 n 种。最典型地使用条件随机场(CRF)算法。另一个最有效的方法是使用深度学习,例如递归神经网络(LSTM)。可能还有其他算法。

希望这会有所帮助:)

答案 3 :(得分:1)

如果您想在Keras中使用一个不错的,预先构建的双向CRF-LSTM(目前是性能最好的模型之一),我建议使用python软件包Anango作为快速播放方法带有NER系统。

尽管这个最初的问题是用Java标记的。重要的是要指出,您将找到用Python实现的这种类型的机器学习的所有最新和最好的算法。

Spacy (Python软件包)也是入门的一种很好的方法,尽管我发现花了一些时间才能快速进行设置。另外,我不确定更改预先构建的NER算法有多么容易。我相信它使用了CNN。

有关NER情况的良好概述: A Survey on Recent Advances in Named Entity Recognition from Deep Learning models