2013-04-22 70 views
0

这可能是一个经典的NLP问题,但是如何在一堆推文中提取完整实体?如何从一堆文本中提取完整实体(不是部分实体)

例如,假设有一堆推文提到“波士顿”和“马拉松”,都在同一条推文中。我怎么知道我应该提取“波士顿马拉松”,而不是波士顿或马拉松?

同样,假设有很多鸣叫提到“权力的游戏”。我怎么会知道要提取的实体是权力的游戏,而不仅仅是游戏?

回答

2

大多数命名实体识别器都使用所谓的IOB(内部 - 外部 - 开始)标记方案,这完全是因为您所询问的场景。例如,句子

John saw Game of Thrones. 

应被标记为

John/B-PERSON saw/O Game/B-MISC of/I-MISC Thrones/I-MISC. 

注意如何“权力的游戏”的第二个和第三个令牌被标记为被命名实体,它开始于“游戏内”。当然,不能保证你使用的标签器会产生这个确切的标签序列。

您可以在NLTK book中了解更多关于IOB的信息。

0

我目前正在从事件DATABSE提取命名实体。我已经尝试过几个库NLTK,PHP脚本等。但我找到的最好的是斯坦福大学NER:http://nlp.stanford.edu:8080/ner/

english.all.3class.distsim.crf.ser.gz

<PERSON>John</PERSON> saw Game of Thrones. 

english.conll.4class.distsim.crf.ser.gz

John saw <ORGANIZATION>Game of Thrones</ORGANIZATION>. 

简单地忽略这个分类的类型。

我使用不同的分类器从文本中提取实体。从那以后,我使用斯坦福解析器:http://nlp.stanford.edu:8080/parser/

类型化的依赖性,倒塌

nsubj(saw-2, John-1) 
root(ROOT-0, saw-2) 
dobj(saw-2, Game-3) 
prep_of(Game-3, Thrones-5) 

http://nlp.stanford.edu/software/dependencies_manual.pdf

指定我想还是不其命名实体。

相关问题