我建立了一个管道,最终输出一堆(数千到数万或更多)命名实体。我想对那些命名实体进行聚合(查看,例如在我的语料库中提到了多少次特定的命名实体)。我遇到的一个问题;但是,即使它们是同一个实体,命名实体通常也不会相互匹配。例如,命名实体的一个实例可能是“Dr. John Smith”,而另一个实例是“John Smith”,或者一个实例可能是“Google”,而另一个实例可能是“Google Inc.”。这使得聚合非常困难。
为了处理这个问题并将“Dr. John Smith”设置为与“John Smith”相同的实体,我正在考虑在我的命名实体之间进行单词匹配。即,我将检查命名实体 A 是否与命名实体 B 有共同的词,以及它们是否将它们设置为同一个实体。这种方法显然存在严重缺陷。我会将“John Nguyen”和“John Smith”等同于同一个实体,尽管它们显然不是。但是,这种方法可能更糟糕的是,我可能会遇到相似链,其中我将“John Smith”与“Richard Smith”链接到“Richard Sporting Goods Inc.”链接。与“Google Inc.”相关联 等等等等……虽然我可能愿意让以前的问题引起的问题通过,
NLP 社区中是否有任何公认的技术来处理这个问题?