9

特定のトピックの 15000 以上のテキスト ドキュメントがあります。前者に基づいて言語モデルを構築したいと思います。これにより、このモデルにさまざまなトピックの新しいランダム テキスト ドキュメントを提示でき、新しいドキュメントが同じトピックのものであるかどうかをアルゴリズムが判断できるようになります。

などを試してみましたがsklearn.naive_bayes.MultinomialNBsklearn.svm.classes.LinearSVC次の問題があります。

これらのアルゴリズムには、複数のラベルまたはカテゴリを持つトレーニング データが必要であり、特定のトピックをカバーする Web ページしかありません。他のドキュメントにはラベルが付けられておらず、さまざまなトピックが含まれています。

ラベルが 1 つしかないモデルをトレーニングする方法、または一般的な進め方についてのガイダンスをいただければ幸いです。私がこれまでに持っているものは次のとおりです。

c = MultinomialNB()
c.fit(X_train, y_train)
c.predict(X_test)

どうもありがとうございました。

4

3 に答える 3

6

TextBlobモジュールには、 PositiveNaiveBayesClassifierという別の分類子があります。ドキュメントから引用するには:

部分的にラベル付けされたトレーニング セットを使用してバイナリ分類を実行する Naive Bayes Classifier のバリアント (つまり、1 つのクラスのみがラベル付けされ、もう 1 つのクラスにはラベル付けされていない場合)。2 つのラベルに事前分布があると仮定して、ラベルなしセットを使用して特徴の度数を推定します。

コードの使用法:

>>> from text.classifiers import PositiveNaiveBayesClassifier
>>> sports_sentences = ['The team dominated the game',
                        'They lost the ball',
                        'The game was intense',
                        'The goalkeeper catched the ball',
                        'The other team controlled the ball']
>>> various_sentences = ['The President did not comment',
                         'I lost the keys',
                         'The team won the game',
                         'Sara has two kids',
                         'The ball went off the court',
                         'They had the ball for the whole game',
                         'The show is over']
>>> classifier = PositiveNaiveBayesClassifier(positive_set=sports_sentences,
                                unlabeled_set=various_sentences)
>>> classifier.classify("My team lost the game")
True
>>> classifier.classify("And now for something completely different.")
False
于 2016-02-10T05:39:32.547 に答える