簡體   English   中英

sklearn_crfsuite的參數需要是字節嗎?

[英]Do the parameters of sklearn_crfsuite need to be bytes?

我正在嘗試構建一個條件隨機場 model,按照本教程https://www.kaggle.com/shoumikgoswami/ner-using-random-forest-and-crf我已經遵循了所有步驟,但由於某種原因,當我跑線

 pred = cross_val_predict(estimator=crf, X=X, y=y, cv=5)

我收到以下錯誤

TypeError: expected bytes, int found

這是構建 CRF 的全部代碼

X = [sent2features(s) for s in sentences]
y = [sent2labels(s) for s in sentences]

crf = sklearn_crfsuite.CRF(algorithm='lbfgs',
                           c1=0.1,
                           c2=0.1,
                           max_iterations=100,
                           all_possible_transitions=False)
pred = cross_val_predict(estimator=crf, X=X, y=y, cv=5)

環境康達 Python 3.7

數據

y(labels) : [[0, 0, 1], [0, 1, 0], [0, 0, 1], [0, 1, 0, 1, 0, 1], [0, 0, 1, 0]]
X (words:sequence): [[{'bias': 1.0, 'word.lower()': 'we', 'word[-3:]': 'we', 'word[-2:]': 'we', 'word.isupper()': False, 'word.istitle()': False, 'word.isdigit()': False, 'postag': 'PRP', 'postag[:2]': 'PR', 'BOS': True, '+1:word.lower()': 'have', '+1:word.istitle()': False, '+1:word.isupper()': False, '+1:postag': 'VBP', '+1:postag[:2]': 'VB'}, {'bias': 1.0, 'word.lower()': 'have', 'word[-3:]': 'ave', 'word[-2:]': 've', 'word.isupper()': False, 'word.istitle()': False, 'word.isdigit()': False, 'postag': 'VBP', 'postag[:2]': 'VB', '-1:word.lower()': 'we', '-1:word.istitle()': False, '-1:word.isupper()': False, '-1:postag': 'PRP', '-1:postag[:2]': 'PR', '+1:word.lower()': 'potatos', '+1:word.istitle()': False, '+1:word.isupper()': False, '+1:postag': 'VBN', '+1:postag[:2]': 'VB'}, {'bias': 1.0, 'word.lower()': 'potatos', 'word[-3:]': 'tos', 'word[-2:]': 'os', 'word.isupper()': False, 'word.istitle()': False, 'word.isdigit()': False, 'postag': 'VBN', 'postag[:2]': 'VB', '-1:word.lower()': 'have', '-1:word.istitle()': False, '-1:word.isupper()': False, '-1:postag': 'VBP', '-1:postag[:2]': 'VB', 'EOS': True}], [{'bias': 1.0, 'word.lower()': 'an', 'word[-3:]': 'an', 'word[-2:]': 'an', 'word.isupper()': False, 'word.istitle()': False, 'word.isdigit()': False, 'postag': 'DT', 'postag[:2]': 'DT', 'BOS': True, '+1:word.lower()': 'island', '+1:word.istitle()': False, '+1:word.isupper()': False, '+1:postag': 'NN', '+1:postag[:2]': 'NN'}, {'bias': 1.0, 'word.lower()': 'island', 'word[-3:]': 'and', 'word[-2:]': 'nd', 'word.isupper()': False, 'word.istitle()': False, 'word.isdigit()': False, 'postag': 'NN', 'postag[:2]': 'NN', '-1:word.lower()': 'an', '-1:word.istitle()': False, '-1:word.isupper()': False, '-1:postag': 'DT', '-1:postag[:2]': 'DT', '+1:word.lower()': 'forest', '+1:word.istitle()': False, '+1:word.isupper()': False, '+1:postag': 'JJS', '+1:postag[:2]': 'JJ'}, {'bias': 1.0, 'word.lower()': 'forest', 'word[-3:]': 'est', 'word[-2:]': 'st', 'word.isupper()': False, 'word.istitle()': False, 'word.isdigit()': False, 'postag': 'JJS', 'postag[:2]': 'JJ', '-1:word.lower()': 'island', '-1:word.istitle()': False, '-1:word.isupper()': False, '-1:postag': 'NN', '-1:postag[:2]': 'NN', 'EOS': True}], [{'bias': 1.0, 'word.lower()': 'up', 'word[-3:]': 'up', 'word[-2:]': 'up', 'word.isupper()': False, 'word.istitle()': False, 'word.isdigit()': False, 'postag': 'IN', 'postag[:2]': 'IN', 'BOS': True, '+1:word.lower()': 'the', '+1:word.istitle()': False, '+1:word.isupper()': False, '+1:postag': 'DT', '+1:postag[:2]': 'DT'}, {'bias': 1.0, 'word.lower()': 'the', 'word[-3:]': 'the', 'word[-2:]': 'he', 'word.isupper()': False, 'word.istitle()': False, 'word.isdigit()': False, 'postag': 'DT', 'postag[:2]': 'DT', '-1:word.lower()': 'up', '-1:word.istitle()': False, '-1:word.isupper()': False, '-1:postag': 'IN', '-1:postag[:2]': 'IN', '+1:word.lower()': 'mile', '+1:word.istitle()': False, '+1:word.isupper()': False, '+1:postag': 'NN', '+1:postag[:2]': 'NN'}, {'bias': 1.0, 'word.lower()': 'mile', 'word[-3:]': 'ile', 'word[-2:]': 'le', 'word.isupper()': False, 'word.istitle()': False, 'word.isdigit()': False, 'postag': 'NN', 'postag[:2]': 'NN', '-1:word.lower()': 'the', '-1:word.istitle()': False, '-1:word.isupper()': False, '-1:postag': 'DT', '-1:postag[:2]': 'DT', 'EOS': True}], [{'bias': 1.0, 'word.lower()': 'the', 'word[-3:]': 'the', 'word[-2:]': 'he', 'word.isupper()': False, 'word.istitle()': False, 'word.isdigit()': False, 'postag': 'DT', 'postag[:2]': 'DT', 'BOS': True, '+1:word.lower()': 'smell', '+1:word.istitle()': False, '+1:word.isupper()': False, '+1:postag': 'NN', '+1:postag[:2]': 'NN'}, {'bias': 1.0, 'word.lower()': 'smell', 'word[-3:]': 'ell', 'word[-2:]': 'll', 'word.isupper()': False, 'word.istitle()': False, 'word.isdigit()': False, 'postag': 'NN', 'postag[:2]': 'NN', '-1:word.lower()': 'the', '-1:word.istitle()': False, '-1:word.isupper()': False, '-1:postag': 'DT', '-1:postag[:2]': 'DT', '+1:word.lower()': 'of', '+1:word.istitle()': False, '+1:word.isupper()': False, '+1:postag': 'IN', '+1:postag[:2]': 'IN'}, {'bias': 1.0, 'word.lower()': 'of', 'word[-3:]': 'of', 'word[-2:]': 'of', 'word.isupper()': False, 'word.istitle()': False, 'word.isdigit()': False, 'postag': 'IN', 'postag[:2]': 'IN', '-1:word.lower()': 'smell', '-1:word.istitle()': False, '-1:word.isupper()': False, '-1:postag': 'NN', '-1:postag[:2]': 'NN', '+1:word.lower()': 'tulips', '+1:word.istitle()': False, '+1:word.isupper()': False, '+1:postag': 'NNS', '+1:postag[:2]': 'NN'}, {'bias': 1.0, 'word.lower()': 'tulips', 'word[-3:]': 'ips', 'word[-2:]': 'ps', 'word.isupper()': False, 'word.istitle()': False, 'word.isdigit()': False, 'postag': 'NNS', 'postag[:2]': 'NN', '-1:word.lower()': 'of', '-1:word.istitle()': False, '-1:word.isupper()': False, '-1:postag': 'IN', '-1:postag[:2]': 'IN', '+1:word.lower()': 'and', '+1:word.istitle()': False, '+1:word.isupper()': False, '+1:postag': 'CC', '+1:postag[:2]': 'CC'}, {'bias': 1.0, 'word.lower()': 'and', 'word[-3:]': 'and', 'word[-2:]': 'nd', 'word.isupper()': False, 'word.istitle()': False, 'word.isdigit()': False, 'postag': 'CC', 'postag[:2]': 'CC', '-1:word.lower()': 'tulips', '-1:word.istitle()': False, '-1:word.isupper()': False, '-1:postag': 'NNS', '-1:postag[:2]': 'NN', '+1:word.lower()': 'roses', '+1:word.istitle()': False, '+1:word.isupper()': False, '+1:postag': 'NNS', '+1:postag[:2]': 'NN'}, {'bias': 1.0, 'word.lower()': 'roses', 'word[-3:]': 'ses', 'word[-2:]': 'es', 'word.isupper()': False, 'word.istitle()': False, 'word.isdigit()': False, 'postag': 'NNS', 'postag[:2]': 'NN', '-1:word.lower()': 'and', '-1:word.istitle()': False, '-1:word.isupper()': False, '-1:postag': 'CC', '-1:postag[:2]': 'CC', 'EOS': True}], [{'bias': 1.0, 'word.lower()': 'i', 'word[-3:]': 'i', 'word[-2:]': 'i', 'word.isupper()': False, 'word.istitle()': False, 'word.isdigit()': False, 'postag': 'VBP', 'postag[:2]': 'VB', 'BOS': True, '+1:word.lower()': 'would', '+1:word.istitle()': False, '+1:word.isupper()': False, '+1:postag': 'MD', '+1:postag[:2]': 'MD'}, {'bias': 1.0, 'word.lower()': 'would', 'word[-3:]': 'uld', 'word[-2:]': 'ld', 'word.isupper()': False, 'word.istitle()': False, 'word.isdigit()': False, 'postag': 'MD', 'postag[:2]': 'MD', '-1:word.lower()': 'i', '-1:word.istitle()': False, '-1:word.isupper()': False, '-1:postag': 'VBP', '-1:postag[:2]': 'VB', '+1:word.lower()': 'love', '+1:word.istitle()': False, '+1:word.isupper()': False, '+1:postag': 'VB', '+1:postag[:2]': 'VB'}, {'bias': 1.0, 'word.lower()': 'love', 'word[-3:]': 'ove', 'word[-2:]': 've', 'word.isupper()': False, 'word.istitle()': False, 'word.isdigit()': False, 'postag': 'VB', 'postag[:2]': 'VB', '-1:word.lower()': 'would', '-1:word.istitle()': False, '-1:word.isupper()': False, '-1:postag': 'MD', '-1:postag[:2]': 'MD', '+1:word.lower()': 'it', '+1:word.istitle()': False, '+1:word.isupper()': False, '+1:postag': 'PRP', '+1:postag[:2]': 'PR'}, {'bias': 1.0, 'word.lower()': 'it', 'word[-3:]': 'it', 'word[-2:]': 'it', 'word.isupper()': False, 'word.istitle()': False, 'word.isdigit()': False, 'postag': 'PRP', 'postag[:2]': 'PR', '-1:word.lower()': 'love', '-1:word.istitle()': False, '-1:word.isupper()': False, '-1:postag': 'VB', '-1:postag[:2]': 'VB', 'EOS': True}]]

我解決了這個問題。 正如我們在數據示例中看到的,y 標簽是包含整數 0 和 1 的 arrays 列表。 因此,在我將 y 變量的標簽從整數更改為 0 和 1 的字符串之后,它確實起作用了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM