2017-06-29 120 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#包含資源 - 也就是說,這裏的技術通常比實現更重要。