2016-07-07 36 views
1

我正在使用scikit-learn作爲文本分類問題,我想知道是否有機器學習技術使用一對一互斥映射進行標記。與文本分類標籤一對一匹配

例如,我想根據他們代表的城市來標記三個文檔。我的標籤選擇是紐約,底特律和洛杉磯。我的文件是「大蘋果」,「大城市」和「天使之城」。比方說,這個例子中「天使之城」最接近洛杉磯地圖,而「大蘋果」和「大城市」都應該貼近紐約。然而,我想要一個映射到紐約(「大蘋果」,因爲我們說這樣更合適),一個映射到底特律,因爲紐約已經被使用,而底特律是唯一的選擇,它仍然是符合某種意義。

我想告訴預測器,如果它使用了一個標籤,它不能再使用它,所以它需要對該標籤進行最佳猜測,因爲它只能使用一次。

scikit-learn或其他庫是否有處理這種一對一(且只有一個)文本分類的功能,就像我想要做的一樣?

回答

1

爲了實現這種功能,我建議你做到以下幾點:

我認爲在你的文本分類算法,您將獲得一個概率得分爲每個文檔的每一個標籤。

例如爲:

Documents "The Big Apple" "The Big City" "City of Angels" 

    Label  

    "New York"  0.45   0.45   0.1 

    "Detroit"  0.4   0.5    0.1     

    "Los Angeles" 0.15   0.05   0.8 

現在,您也許能夠看到我對這個標題。

使用argmax函數(返回每個文檔具有最大概率的標籤)。

在這種情況下,argmax函數將返回文檔「The Big Apple」和「The Big City」的標籤「New York」,文檔「Detroit」的標籤「The Big City」以及標籤「洛杉磯」爲文件「天使之城」。

因爲在這種情況下,在爲文檔分配標籤「紐約」(因爲您需要一對一映射)時存在衝突(我寧願不稱之爲衝突),我會說你去下一個標籤。標籤「大城市」可以清楚地分配給文檔「底特律」,因爲它具有最大的可能性(匹配),然後從可能的標籤集中刪除標籤「底特律」(其餘標籤 - >「紐約「和」洛杉磯「)。然後,您將轉到下一個標籤「洛杉磯」,argmax功能會告訴您文檔「天使之城」擁有標籤「洛杉磯」的概率最高(最高匹配)。然後您從其餘的標籤中刪除標籤「Lost Angeles」。在這一點上,剩下的標籤 - >「紐約」。然後,您會看到下一個標籤「New York」,並看到它可以分配給的唯一文檔是「The Big Apple」,並且您在文檔和標籤之間具有一對一的映射關係。

我之前通過兩種方式完成此操作,通過隨機分配標籤到文檔或通過計算下一個標籤的概率來打破平局來打破平局。這種技術也用於決策樹算法中,以找到樹中給定級別上最合適的屬性。它被稱爲熵或該屬性的信息增益。這種實現是ID3決策樹算法獲得的信息更簡單的版本。

更多關於ID3決策樹算法here