我正在做一個臨牀文本分類的項目。在我的語料庫中,數據已經被代碼標記(例如:768.2,V13.02,V13.09,599.0 ...)。我已經分開文本和標籤,然後使用文字嵌入文本。我將把它們送入卷積神經網絡。然而,標籤需要編碼,我讀了情感文本分類和mnist的例子,但他們都使用整數來分類他們的數據,我的標籤以文本形式表明我爲什麼不能使用像他們這樣的熱門編碼。任何人都可以提出任何方式來做到這一點? 謝謝用於文本分類的編碼數據標籤
回答
通過創建枚舉映射,可以將離散文本標籤輕鬆轉換爲離散數字數據。例如,假設標籤「是」,「否」和「也許」:
No -> 0
Yes -> 1
Maybe -> 2
現在你有數字數據,以後可以只要算法把這些離散值,並且轉換回(不要返回0.5或類似的東西)。
在每個實例都可以具有多個標籤的情況下(如您在評論中所說的),您可以通過將每個標籤放在列中(「單熱編碼」)來創建編碼。即使某些軟件沒有實現現成的功能,也不難親自完成。
下面是使用熊貓的get_dummies功能非常簡單的(而不是寫得很好,說實話)例如:
import numpy as np
import pandas as pd
labels = np.array(['a', 'b', 'a', 'c', 'ab', 'a', 'ac'])
df = pd.DataFrame(labels, columns=['label'])
ndf = pd.get_dummies(df)
ndf.label_a = ndf.label_a + ndf.label_ab + ndf.label_ac
ndf.label_b = ndf.label_b + ndf.label_ab
ndf.label_c = ndf.label_c + ndf.label_ac
ndf = ndf.drop(['label_ab', 'label_ac'], axis=1)
ndf
label_a label_b label_c
0 1.0 0.0 0.0
1 0.0 1.0 0.0
2 1.0 0.0 0.0
3 0.0 0.0 1.0
4 1.0 1.0 0.0
5 1.0 0.0 0.0
6 1.0 0.0 1.0
現在你可以訓練一個多變量模型輸出的label_a
,label_b
和label_c
後的值重建原始標籤,如「ab」。只要確保輸出在[0,1]集中(通過應用softmax-layer或類似的東西)。
關注此4分鐘的視頻(Corsera:ML分類華盛頓(大學) - > Week1 - >編碼分類輸入) https://www.coursera.org/learn/ml-classification/lecture/kCY0D/encoding-categorical-inputs
有編碼的兩種方法:
一個熱編碼
一包字(我認爲這是比較適合的方法在這種情況下)
下圖描述了詞袋方法如何工作。文本可以說來自它的10,000個不同的單詞,或更多,更多,數百萬。那麼,「文字袋」就是把這些文字,然後編碼爲計數。
編輯1
Python實現:訪問http://www.python-course.eu/text_classification_python.php
謝謝Sayali,我有你的理想,所以我有46個標籤,我創建了一個46的數組,當文本標籤,我將它設置爲1,如(00100000..0)。我真的不知道如何編寫代碼,你知道python中的任何函數嗎? – ngoduyvu
https://www.kaggle.com/c/word2vec-nlp-tutorial/details/part-1-for-beginners-bag-of-words –
你可以在scikit-learn library中找到該功能 –
- 1. 單標籤數據集中的多標籤文本分類
- 2. 是僅用於文本的多標籤分類
- 3. 用於多標籤分類的不平衡數據集
- 4. 如何把文本標籤 - 禪編碼
- 5. Tensorflow分類標籤數據類型
- 6. 的分類標籤數據在Matlab
- 7. 文本分類 - 標籤預處理
- 8. 我如何HTML編碼可能有html標籤的文本,而不使用Javascript編碼標籤本身
- 9. 問題上使用下面的代碼的多標籤數據分類多標籤數據
- 10. NLTK:使用數字分數代替標籤的文檔分類
- 11. 使用單標籤訓練數據的多類多標籤分類
- 12. 選擇用於分類用戶文本數據的sklearn管道
- 13. 計數標籤從標籤分隔文本中收集數據.JSX Adobe InDesign
- 14. 用於只讀文本的HTML標籤
- 15. 用於創建標籤文本的RegEx
- 16. 蟒「類型錯誤:unhashable類型:‘切片’」用於編碼分類數據
- 17. 用於文本分類的數據結構任務
- 18. 處理用於分類的文本數據
- 19. 用於聚類任務的帶有「加權標籤」的多標籤分類
- 20. 基於Python的多標籤分類
- 21. jQuery - 分配標籤文本
- 22. 拆分文本按標籤
- 23. 對R中的多個分類變量進行標籤編碼
- 24. 分類數據 - 單熱編碼
- 25. 使用TensorFlow的多標籤文本分類
- 26. 詞性分析(POS)標籤文本分類的特徵選擇
- 27. 將標籤分配給PySpark中的表中的分類數據
- 28. 在PHP應用程序中檢測硬編碼標籤文本
- 29. 如何將reuters-21578數據集與svm.net用於文本分類?
- 30. jQuery標籤 - 基於標籤文本選擇標籤
您可以使用一個熱編碼離散標籤。例如,對於標籤「是」,「否」和「可能」,您可以分配「No = 0」,「Yes = 1」,「Maybe = 2」,然後將其編碼爲多個二進制/連續標籤。 – Mephy
謝謝梅菲,我的文本數據被45個標籤分類。一些文本可能一次有兩個標籤。 – ngoduyvu