2017-10-15 5 views
0

、コードは以下の通りです:新しいテキストを分類するためにFacebook-Fasttextを使用するとき、なぜ戻り値のデータ型がリストですか?私はFacebookの-Fasttextモジュールを使用して新しいテキストを分類しようとしている

#!usr/bin/python 2.7 

import sys 
import jieba 
reload(sys) 
sys.setdefaultencoding('utf-8') 

import fasttext 
lines=[line.strip() for line in open('./corpus_seg2.txt', 'r')] 
print(len(lines)) 
l_c=len(lines) 
train_size=int(l_c*0.8) 
text_size=l_c-train_size 
train_set=lines[:train_size] 
text_set =lines[l_c-train_size+1:] 

with open("./train.txt", "w") as ftrain: 
    for line in train_set: 
     ftrain.write(line+'\n') 
with open("./test.txt", "w") as ftext: 
    for line in text_set: 
     ftext.write(line+'\n') 
ftrain.close() 
ftext.close() 

classifier = fasttext.supervised("./train.txt", 'model', label_prefix='__label__') 

classifier = fasttext.load_model("./model.bin", label_prefix='__label__') 

test_label=classifier.predict_proba('五五开 也 很 厉害 啊') 

result = classifier.test("./test.txt") 
print '[email protected]:', result.precision 
print '[email protected]:', result.recall 
print 'Number of examples:', result.nexamples 
print test_label 

corpus_seg_2.txtがセグメント化されたファイルです。モデルの精度は72%、リコールは72%です。 次に、このモデルを使用して新しいテキストを予測しました: '五五开也很厉害啊'。しかし、私が持っているtest_lablelは混乱しています、私はなぜ結果がこれなのか疑問に思っています、どうすれば修正できますか? test_label=classifier.predict_proba('五五开 也 很 厉害 啊') 関数は、入力として型の配列のテキストをとる予測するためだtest_label=classifier.predict_proba(['五五开 也 很 厉害 啊'])

へ: This picture will show you the result I got after running the code I provide

答えて

0

@Arthurあなたは出力はあなたがこれを変更する必要があり、文ごとに単一の値にしたい場合文字列。

関連する問題