2013-05-18 39 views
1

通過編輯我的問題標題和標籤幫助我們非常感謝!nlp:替代拼寫標識

有時,我的「會話」語料庫中的一位參與者會引用另一位參與者使用暱稱,通常是縮寫或拼寫錯誤,但此後我只會說「暱稱」。比方說,我願意手動告訴我的軟件,我是否認爲各種可能的暱稱實際上都是暱稱,但是我希望軟件能夠找出識別人的句柄和潛在暱稱之間的可能匹配列表。我會怎麼做呢?

關於我和我的語料庫的背景:我沒有經歷自然語言處理的經驗,但我是一名有能力的數據分析師。我的數據由70個團隊製作,每個團隊預測一次發生100個不同事件的可能性在將來。結果是我有70 x 100 = 7000個文本文件,其中包含參與者提供的預測流以及他們對預測的評論。我將在下面粘貼這些文本文件中很短的一段,這一個與馬裏政府是否會與MNLA進行會談有關:

2013年2月12日20:10:past_returns回答是:(50%)

,當我把我以前的 佔位符我沒有做了很多的研究......我撞了很多由於DougL的預測

2013年2月12日19:31:DougL回答是:(60%)

Traore弱總統希望會談,如果MNLA掉地區索賠。馬裏的軍隊可能不想談判。法國想要談判。 MNLA建議 它只是需要自治權。但在7周內?

2013年2月12日10:59:past_returns回答否:(75%)

佔位符預期... http://www.irinnews.org/Report/97456/What-s-the-way-forward-for-Mali

我最初的想法:很顯然,我就可以開始通過提供名稱我希望在上面的例子中將它們與...匹配,它們將是past_returns和DougL(儘管上面沒有使用暱稱)。我不認爲用計算機猜測小的拼寫錯誤會很難(儘管我不知道從哪裏開始)。我可以想象,可以使用其他技巧,比如假設一個團隊使用的字符串比其他團隊更容易成爲別名。綽號更可能是指最近發言的人,而不是最近發言的人,或者根本就不涉及這個問題。它們應該以類似於全名/屏幕名稱通常在語料庫中使用的方式在句子中使用。但我很想聽聽簡單的方法,以及那些試圖考慮更復雜技術的方法。

回答

1

這可能會像您想要的那樣複雜。從事物的半語言方面來說,研究主題將包括Levenshtein Distance(用於檢測已知名稱/暱稱的次要拼寫錯誤)和Named Entity Recognition(用於首先檢測名稱/暱稱的任務)。實際上,NER值得一讀,但現有的系統可能無助於你在論壇處理和暱稱領域的工作。

想到的第一個粗略想法是,您可以針對英語詞典(可能是從維基詞典或類似WordNet編譯的數據集)運行語料庫的標記化版本來查找候選名稱的單詞,然後過濾那些通過一些啓發式算法(他們是否以已知全名的相同字母開頭?他們與已知名稱的Levenshtein距離是否低?是否使用了多次?)。

您也可以嘗試對非字詞標記進行聚類或監督ML算法。這可能會揭示一些經常發生在與給定用戶名相同的線程中的非「單詞」標記;再次,啓發式可以幫助排除一些誤報。

祝你好運;聽起來像一個有趣的問題 - 希望我提到至少有一件事你還沒有想到。

+0

當然,我認識到這個問題是5個月前寫的。我會讀;我保證... – Josh

+0

+1,你應該得到額外的榮譽回答一個老問題。感謝您的建議,在過去的5個月裏,我已經用其他分析報告了自己,但可能會回到這一點。 –