如何在Python中使用SVM进行POS标记?

时间:2015-09-05 09:53:10

标签: python scikit-learn nltk svm pos-tagger

我想在Python中使用带有非英语语料库的SVM进行POS标记。 看起来Python还不支持使用SVM进行标记(http://www.nltk.org/_modules)。

scikit-learn有一个SVM模块。所以我安装了scikit-learn并在Python中使用它,但我找不到任何关于使用SVM进行POS标记的教程。

我真的不知道该怎么做,任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:4)

它必须是SVM吗? NTLK有内置工具来进行POS标记:Categorizing and Tagging Words

如果您想使用自定义分类器,请查看此处:http://www.nltk.org/api/nltk.classify.html,Ctrl + F" svm",NTLK为名为SklearnClassifier的scikit-learn算法提供包装器。然后看看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分类器只采用数字特征,所以你需要以某种方式转换你的。

相关问题