2017年1月14日 星期六

FastText 可以解讀傳統中文嗎?

FastText 是由 Facebook Research 研發的文字分類程式。顧名思義,會有很快速的效能。我試過 IBM Watson, Google Cloud API, Facebook FastText 三個當中,最快的是 FastText,真的很快。初試時隨手拿英文的數據來測試,沒有試過傳統中文,今次就試一試。

首先要自行準備中文數據。每行第一個字是「標韱」,後面跟著「文字」:


再把數據轉變為 FastText 的格式。主要是為「標韱」文字加入「__label__」字頭;而「標韱」與「文字」間以空白符號隔開:


準備好數據,便是訓練步驟。以 skipgram 訓練「單詞特徵」:

可惜出現「std::bad_alloc」錯誤,我找不到解決辦法。

於是試一試「Supervised」文字分類訓練:
今次訓練得非常之快,看似成功;但理應在訓練完成後會產生 .bin 及 .vec 檔,卻只有 .bin 存在,不見 .vec。拿訓練成功的模型測試一下,結果 P 值及 R 值都沒有數字,訓練失敗了...。

3 則留言:

彭秋源 提到...

然后?没有然后了吗

Pacess HO 提到...

然後...還沒有進展。我發現到訓練數據應該是文字在前,標韱在後。即是「今天天氣很好! __label__天氣」這樣。可是,訓練出來的 P 值及 R 值還是零,尚未成功...

向华谢 提到...

要先分词