好吧,這是我最好的拍攝。
最初設想
首先,我們假設你有一個已經包含的人提到了文章,而這些提到要麼a)您正在尋找或B中的特定人的提到)提及其他人分享相同的名字。
我認爲消除每個提及(正如你在實體鏈接中所做的那樣)是矯枉過正的,因爲你還假定這些文章或者是關於這個人或者不是。所以我們會說任何包含至少一個人的文章都是關於這個人的文章。
通用的解決方案:文本分類
你必須開發出從文章中提取特徵和飼料的功能,您通過監督學習獲得的模型的分類算法。該模型將輸出兩個答案中的一個,例如True或False。這需要一套訓練集。爲了評估目的(瞭解您的解決方案的工作原理),您還需要測試集。
因此,第一步是使用兩個標籤中的一個標籤(「True」和「False」或其他)來標記這些訓練和測試集。您必須手動分配這些標籤,方法是自行檢查文章。
哪些功能使用
@eldams提及使用上下文線索。在我的(嘗試)解決方案中,文章就是上下文,所以基本上你必須問自己,可能會泄露文章是關於特定人的。此時,您可以自己選擇要素,也可以讓更復雜的模型在更一般的要素類別中查找特定要素。
兩個例子,假設我們正在尋找關於新當選的加拿大總理賈斯汀特魯多的文章,而不是其他任何人也被命名爲賈斯汀特魯多的文章。
A)選擇功能自己
有了一點研究,你會學到賈斯汀特魯導致加拿大的自由黨,讓一些很好的功能是檢查文章是否包含這些字符串:
自由加拿大自由黨黨杜加拿大,LPC,PLC,自由黨, Libéraux,讓·克雷蒂安,保羅·馬丁等黨
由於特魯多是政治家,尋找這些可能是一個好主意:
政治,政治家,法律改革,國會下議院,等
您可能希望收集有關信息他的私人生活,親密的合作者,妻子和孩子的名字等等,並且增加這些。
B)讓學習算法做的工作
你的其他選擇是利用一切正克也有訓練集來訓練n元模型(例如使用所有對unigram和雙字母組) 。這導致了一個更復雜的模型,它可以更加健壯,而且更重要的是訓練和使用。
軟件資源
無論你選擇做什麼,如果你需要訓練一個分類,你應該使用scikit-learn。它的SVM分類器將是最流行的選擇。 Naive Bayes是更經典的文件分類方法。
你看過這個:http://www.nltk.org/book/ch07.html#named-entity-recognition – reynoldsnlp
@bebop,這並不能解決我的問題,因爲我不是要識別所有的文本提及已命名的實體。我想確定在給定的文章中提到的人「X」是我所尋找的同一個人的概率。 –
我可以想出一個涉及監督式學習的解決方案,即在「這就是那個人」和「這不是那個人」之間的分類。你有多少篇關於這個人的名字?他們都是關於那個人的,還是一些關於其他同名的人的文章? – HugoMailhot