我想用Python中的非英语语料库使用SVM进行词性标注。看起来Python还不支持使用支持向量机进行标记(http://www.nltk.org/_modules)。
scikit-learn有一个支持向量机模块。所以我安装了scikit-learn并在Python中使用它,但我找不到任何关于使用SVM进行POS标记的教程。
我真的不知道该怎么做,任何帮助都将不胜感激。
发布于 2015-09-05 20:55:45
它一定要是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分类器只接受数字特征,所以你需要以某种方式转换你的分类器。
https://stackoverflow.com/questions/32411715
复制相似问题