2017-06-29 119 views
1

我是NLP的新手。我所试图做的(在C#)给出自定义实体的清单,以及我期待采取短句子和标签模糊这些实体的比赛模糊实体识别

 
> NAME|ENTITY TYPE|ID 
> Cubbies|Baseball Team|CHI 
> Chicago Cubs|Baseball Team|CHI 
> Dubs|Basketball Team|GSW 
> Golden State Warriors|Basketball Team|GSW 

线。

例如,解析

乔丹贝尔将会使金圣年要好得多未来

乔丹贝尔将会使[篮球队| GSW]明年要好得多“

理想情况下,这将与广义名称识别相结合,例如:

[Person:Jordan Bell]将使[篮球队:GSW]好得多[时间:明年]“。

感谢您的帮助或指导。谢谢!

+1

为什么你称之为模糊实体识别?它看起来像正规的命名实体识别给我。你总是需要处理NLP中的变化 - 在这里,它是缩写,同义词,超名称...... – lenz

回答

1

可能最好是将问题分为两部分:角色标注(命名实体识别)和标签统一(模糊匹配)。

为了确定标签 - 也就是说,在标记句子令牌为team nameperson,等等 - 一个条件随机场(CRF)是一个很好的模型。 CRF++是一个流行的工具包。纽约时报使用CRF ++在几年前取得了一些配方数据的成功。下面是从their article了一下:

CRF labelling example

既然你确定运动队的名字,你有对付模糊匹配你描述的两个选项。你可以使用字符串相似性来做实际的模糊匹配this article解释了如何在Python库Fuzzy Fuzzy中以足够高的水平完成它应该很容易重新实现。

您的其他选项是命名实体分辨率,它将绑定命名实体(您标记的位)绑定到外部数据库。例如,当您使用维基百科进行此操作时,它被称为“维基化”。 This article描述了某人使用维基百科重定向信息来识别公司的替代名称 - 您可以通过检查维基百科重定向CubbiesChicago Cubs(它确实)来达到同样的目的。

不知道您的数据,很难说模糊匹配或命名实体分辨率是否会更容易,所以最好给他们两个镜头。

对不明确为C#包含资源 - 也就是说,这里的技术通常比实现更重要。