2 回答

TA貢獻2036條經驗 獲得超8個贊
您可以構建自己的自定義分類器(按照 polm23 的建議),但考慮到您是 NLP 新手,這可能過于復雜且耗時。
一種令人興奮的新方法是所謂的“零樣本分類”。這基本上意味著您采用其他人以非常通用的方式預先訓練的通用機器學習模型進行文本分類,并且您只需將其應用到您的特定用例,而無需訓練/微調它。
具體應用于您的用例,這看起來像這樣:
# pip install transformers==3.1.0? # pip install in terminal
from transformers import pipeline
classifier = pipeline("zero-shot-classification")
sequence = "The biggest elephant in the world"
candidate_labels = ["animals", "fruits", "diseases"]
classifier(sequence, candidate_labels)
# output: {'sequence': 'The biggest elephant in the world',?
# 'labels': ['animals', 'diseases', 'fruits'],?
# 'scores': [0.9948041439056396, 0.0035726651549339294, 0.0016232384368777275]}
如果您希望算法為文本分配多個標簽,您可以激活多標簽分類,它會為每個文本考慮多個標簽。
sequence = "I like mangos and gorillas"
candidate_labels = ["animals", "fruits", "diseases"]
classifier(sequence, candidate_labels, multi_class=True)
# output: {'sequence': 'I like mangos and gorillas',?
# 'labels': ['animals', 'fruits', 'diseases'],?
# 'scores': [0.9978452920913696, 0.989518404006958, 0.00015786082076374441]}
=>用你的話來說:它為每個文本“創建一個‘標簽列表’”。即對于每個預定義標簽,它提供一個置信度分數,然后您可以為“真實標簽列表”選擇具有最高置信度分數的標簽。
我測試了它,實際輸出在上面的代碼中。它對所有內容進行了正確分類:)
它在其他用例上進行了嘗試,雖然不是 100% 準確,但它相當不錯,因為代碼非常簡單,而且您不必自己訓練模型。

TA貢獻1829條經驗 獲得超9個贊
你要做的就是所謂的多標簽分類。您的“標簽”是labels,每個文檔可以有多個標簽。
實現此目的的典型方法是為每個標簽訓練二元分類器,然后將預測中高于閾值的標簽視為陽性。
spaCy 支持多標簽分類。
添加回答
舉報