一次關於sklearn crfsuite的安裝之旅

2021-10-05 15:17:04 字數 1489 閱讀 4308

為了在windows上跑crf,我需要安裝sklearn-crfsuite,最開始想到的是使用pycharm進行環境配置,裝上了sklearn-crfsuite。跑起來,額,出錯了:

正在訓練評估crf模型...

traceback (most recent call last):

file "c:/users/cc/documents/***/yyy/window_version/main.py", line 73, in main()

file "c:/users/cc/documents/***/yyy/window_version/main.py", line 31, in main

(test_word_lists, test_tag_lists)

file "c:\users\cc\documents\***\yyy\window_version\evaluate.py", line 43, in crf_train_eval

crf_model.train(train_word_lists, train_tag_lists)

file "c:\users\cc\documents\***\yyy\window_version\models\crf.py", line 23, in train

self.model.fit(features, tag_lists)

trainer.train(self.modelfile.name, holdout=-1 if x_dev is none else 1)

file "pycrfsuite\_pycrfsuite.pyx", line 359, in pycrfsuite._pycrfsuite.basetrainer.train

file "stringsource", line 15, in string.from_py.__pyx_convert_string_from_py_std__in_string

unicodeencodeerror: 'ascii' codec can't encode characters in position 9-10: ordinal not in range(128)

process finished with exit code 1

好的,不就是排錯嗎!我不怕,上網找經驗,找原始碼,找到pycrfsuite_pycrfsuite.pyx的basetrainer.train函式,但是找不到stringsource,懷疑是c/c++實現,有點灰心~

通過找經驗可以考慮的解決方案:

使用cmd,pip安裝sklearn-crfsuite

換乙個電腦,自己的電腦環境被搞得有點亂

將中文編碼成index,重新訓練模型

同事用pip成功了,搜尋他的電腦上根本沒有_pycrfsuite.pyx,但是有_pycrfsuite.pyd檔案,不知道兩者有什麼區別。

換個電腦用pip裝一下sklearn-crfsuite,搞定了。

備註:其實在linux上用pip裝沒問題,就可以想想用pip裝了~

一次關於 的使用

今天遇到了乙個問題,值得一記 首先在我看專案 時發現了乙個問題 有乙個js的export如下 大家可以注意一下config 這裡為什麼要如此寫法呢?首先這裡用的時es6的箭頭函式 而此種寫法 等同於 其實這裡我們可以直接使用config 就 可以,為什麼還要多以一舉,用函式來返回呢,原因是假如我們用...

一次關於工作的決策

配圖一位學長通過了阿里的面試,交接原工作。打算讓我去他公司頂替原本他的工作,給我的薪資在廈門對於同期畢業的同學薪資大約是他們的2倍 3倍。學長第一遍問我要不要去他公司的時候,我回答不方便過去。再和學長聊天的時候,學長又問我要不要再考慮一下呢?這也是一次不錯的機會。聽到學長又給我時間讓我考慮,一方面是...

關於一次作業的感想

記一次 簡單 內心複雜 的逆向作業,使用winapi程式設計,要求如下 話不多說,開肝就是了 一開始我的想法是把顯示和獲取函式分開,獲取部分再分為位址和執行緒號,最後顯示部分負責呼叫就好了 理想很美好 然而返回值的問題搞到我頭禿?即使函式返回值和主函式變數都設為同樣的也不行,結果往往是在printf...