这可能是一个经典的NLP问题,但如何在一堆推文中提取FULL实体呢?
例如,假设有一堆推文提到“波士顿”和“马拉松”,两者都在同一条推文中。我怎么知道我应该提取“波士顿马拉松”而不仅仅是波士顿或马拉松?
同样,假设有很多推文提到“权力的游戏”。我怎么知道要提取的实体是权力的游戏,而不仅仅是游戏?
答案 0 :(得分:2)
大多数命名实体识别器都使用所谓的IOB(内外开始)标记方案,因为您要问的方案完全正确。例如,句子
John saw Game of Thrones.
应标记为
John/B-PERSON saw/O Game/B-MISC of/I-MISC Thrones/I-MISC.
注意“权力游戏”的第二和第三个标记是如何被标记为在命名实体内,从“游戏”开始。当然,无法保证您使用的标记符会产生这种精确的标记序列。
您可以在NLTK book中了解有关IOB的更多信息。
答案 1 :(得分:2)
尝试的另一件事可能是提取搭配。有关此方法的介绍,请参阅the following article。
答案 2 :(得分:0)
您也可以尝试使用DBpedia-Spotlight端点..
答案 3 :(得分:0)
我目前正在从事件数据库中提取命名实体。我已经尝试了几个库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>.
忽略分类类型。
我使用不同的分类器从文本中提取实体。之后我使用Stanford Parser: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
指定我想要的命名实体。