2017-04-15 83 views
0

我是webscraping,我將utf-8保存到csv,清理它,現在我正在嘗試創建我的培訓和測試文件,以便能夠使用Facebook快速文本,現在是我和它給我一個錯誤fastText python實現創建培訓和測試集

from sklearn.cross_validation import train_test_split 

y_all = df["normalized"] 
X_all = df.drop('normalized', axis = 1) 

X_train, X_test, y_train, y_test = train_test_split(X_all, y_all, `test_size=0.3, random_state=1)` 
import fasttext as ft 
classifier = ft.supervised(X_train, y_train) 

,這是它返回的錯誤,這是fastText在jupyter筆記本窗戶

TypeError         Traceback (most recent call last) 
<ipython-input-47-1f4fa41d367f> in <module>() 
----> 1 classifier = ft.supervised(X_train, y_train) 

fasttext/fasttext.pyx in fasttext.fasttext.supervised (fasttext/fasttext.cpp:6665)() 

fasttext/fasttext.pyx in fasttext.fasttext.train_wrapper (fasttext/fasttext.cpp:4732)() 

C:\Program Files\Anaconda3\lib\genericpath.py in isfile(path) 
    28  """Test whether a path is a regular file""" 
    29  try: 
---> 30   st = os.stat(path) 
    31  except OSError: 
    32   return False 

TypeError: argument should be string, bytes or integer, not DataFrame 
+0

試着做'y_all = df [「normalized」]。values' 'X_all = df.drop('normalized',axis = 1).values' –

回答

0

@ kwashington122我覺得你現在的樣子使用監督是錯誤的。 fasttext.supervised是一個分類器作爲輸入應包含標籤數據的培訓文件,像 X_train:

的text1 LABEL_X
文本2 label_y

,你將需要指定標籤前綴,以便fasttext可以捕獲您擁有的不同標籤。 model = fasttext.supervised(X_train,'model', label_prefix='label_') fasttext將在我的示例x和y中檢測到2個標籤(因爲我將label_指定爲標籤的前綴)。

然後以預測或測試的一組新數據的分類,你只需要做到這一點: model.test(X_test) 或者如果你想預測標籤的文字或句子做到以下幾點:

model.predict(X_test) ## where text has no labels. 

我的答案有點晚對不起只是在尋找我的問題的答案時出現問題。