我想用Python中的非英語語料庫使用SVM進行POS標記。 看起來Python不支持使用SVM標記(http://www.nltk.org/_modules)。如何在Python中使用SVM進行POS標記?
scikit-learn有一個SVM模塊。所以我安裝了scikit-learn並在Python中使用它,但是我找不到有關使用SVM進行POS標記的任何教程。
我真的不知道該怎麼做,任何幫助將不勝感激。
我想用Python中的非英語語料庫使用SVM進行POS標記。 看起來Python不支持使用SVM標記(http://www.nltk.org/_modules)。如何在Python中使用SVM進行POS標記?
scikit-learn有一個SVM模塊。所以我安裝了scikit-learn並在Python中使用它,但是我找不到有關使用SVM進行POS標記的任何教程。
我真的不知道該怎麼做,任何幫助將不勝感激。
是否必須是SVM? NTLK有內置的工具做詞性標註:Categorizing and Tagging Words
如果你想使用自定義分類,看看這裏:http://www.nltk.org/api/nltk.classify.html,按Ctrl + F「SVM」,NTLK提供所謂SklearnClassifier
scikit學習算法的包裝。然後看看這裏http://www.nltk.org/api/nltk.tag.html,Ctrl + F「分類器」,有一個類nltk.tag.sequential.ClassifierBasedPOSTagger
這顯然可以使用從sklearn包裝分類。
我沒有試過這個,但它可能工作。
編輯: 它應該是這樣的:
from nltk.classify import SklearnClassifier
from sklearn.svm import SVC
clf = SklearnClassifier(SVC(),sparse=False)
cpos = nltk.tag.sequential.ClassifierBasedPOSTagger(train=train_sents,classifier_builder
= lambda train_feats: clf.train(train_feats))
唯一的問題是,sklearn分類只取數字功能,所以你需要你以某種方式轉換。
謝謝,hellpanderrr。我嘗試了其他標記器(CRF,TBL,HMM,...)並且想要使用SVM。我用這個包裝,但仍然不能做任何POS標記。 –
是什麼問題? – hellpanderrr
使用Python中的其他標記器,您只需要訓練數據來訓練,然後就可以使用標記方法和評估方法。但是當我使用scikit-learn或SklearnClassifier的SVM時,我找不到任何方法來訓練或標記。 –