gpt4 book ai didi

python - Nltk Sklearn 一元语法 + 二元语法

转载 作者:行者123 更新时间:2023-11-30 09:01:28 25 4
gpt4 key购买 nike

我正在使用 NLTK 和 nltk.sklearn 包装器构建分类器。

classifier = SklearnClassifier(LinearSVC(), int,True)
classifier.train(train_set)

例如,当我仅使用一元语法和构建功能集时:

{"Cristiano" : True, "Ronaldo : True}

一切都很好。但是当我想使用搭配时就会出现问题。功能集看起来不同:

{ {"Cristiano" : True, "Ronaldo : True, ("Cristiano", "Ronaldo") : True }

然后我收到错误:

feature_names.sort()TypeError: unorderable types: tuple() < str()

如何使用一元语法和二元语法为 nltk sklearn 包装器正确创建功能集?

最佳答案

您可以使用CountVectorizer来自scikit-learn生成 ngram。

演示:

import sklearn.feature_extraction.text

ngram_size = 1
train_set = ['Cristiano plays football', 'Ronaldo like football too']

vectorizer = sklearn.feature_extraction.text.CountVectorizer(ngram_range=(ngram_size,ngram_size))
vectorizer.fit(train_set) # build ngram dictionary
ngram = vectorizer.transform(train_set) # get ngram
print('ngram: {0}\n'.format(ngram))
print('ngram.shape: {0}'.format(ngram.shape))
print('vectorizer.vocabulary_: {0}'.format(vectorizer.vocabulary_))

输出:

ngram:   (0, 0) 1
(0, 1) 1
(0, 3) 1
(1, 1) 1
(1, 2) 1
(1, 4) 1
(1, 5) 1

ngram.shape: (2, 6)
vectorizer.vocabulary_: {u'cristiano': 0, u'plays': 3, u'like': 2,
u'ronaldo': 4, u'football': 1, u'too': 5}

关于python - Nltk Sklearn 一元语法 + 二元语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32252075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com