歡迎光臨, 訪客. 請先 登入註冊一個帳號.
十一月 01, 2024, 07:01:49 上午
19595 文章 在 3865 主題 由 4579 會員
最新註冊會員: aa123aa1
LifeType 中文開發論壇  |  支援  |  安裝與設定  |  發表文章時出現 這問題 « 上篇主題 下篇主題 »
頁: [1]
作者 主題: 發表文章時出現 這問題  (閱讀 14198 次)
ccc4mak
新手見習
*
文章: 2


檢視個人資料
« 於: 一月 23, 2006, 07:38:39 下午 »

發表文章時出現 這問題
1.03  最近版
apache 2.0
php 5.0
mysql 5.0

Fatal error: Uncaught exception 'Exception' with message 'BayesianTokens::updateOccurrencesFromTokensArray: Cannot update occurrences of token '12314�'.' in C:\web\plog\class\dao\bayesiantokens.class.php:194 Stack trace: #0 C:\web\plog\class\dao\bayesiantokens.class.php(164): BayesianTokens->updateOccurrencesFromTokensArray('1', Array, 0, 1, '0', 1) #1 C:\web\plog\class\bayesian\bayesianfiltercore.class.php(87): BayesianTokens->incNonSpamOccurrencesFromTokensArray('1', Array, '0', 1) #2 C:\web\plog\class\bayesian\bayesianfiltercore.class.php(108): BayesianFilterCore->train('1', '?????????testin...', '12314<br/>?????...', '', '', '', false) #3 C:\web\plog\class\action\admin\adminaddpostaction.class.php(122): BayesianFilterCore->trainWithArticle(Object(Article)) #4 C:\web\plog\class\controller\controller.class.php(309): AdminAddPostAction->perform() #5 C:\web\plog\admin.php(39): Controller->process(Array, 'op') #6 {main} thrown in C:\web\plog\class\dao\bayesiantokens.class.php on line 194
已記錄

WinXP SP2
MySQL 5.0
Apache 2.0.55
PHP 5.0
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #1 於: 二月 04, 2006, 01:01:13 上午 »

發表文章應該不會出現這樣的錯誤啊?

這是當有人發表『迴響』時, Bayesian Filter 在作訓練的程式啊!

你有改過程式嗎?

Mark
已記錄

walteriii
初級會員
**
文章: 52


檢視個人資料
« 回覆文章 #2 於: 二月 21, 2006, 02:37:55 下午 »

我们的 LifeType 1.0.3 / mysql 5.0.18 / php 4.4.2 也出现这问题,数据库编码是
utf8-general-ci, mysql 错误日志如下。我们从未修改任何程序源代码。Mark
前辈认为这是怎么回事呢?

19-02-2006 21:49:30 ERROR - The following query =
INSERT INTO lt_bayesian_tokens (blog_id, token, spam_occurrences, nonspam_occurrences, prob) VALUES ('4', 'momo?, '0', '1', '0.01')
generated the following error message =
Data too long for column 'token' at row 1

20-02-2006 17:12:36 ERROR - The following query =
INSERT INTO lt_bayesian_tokens (blog_id, token, spam_occurrences, nonspam_occurrences, prob) VALUES ('19', 'qmd?, '0', '1', '0.01')
generated the following error message =
Data too long for column 'token' at row 1


發表文章應該不會出現這樣的錯誤啊?

這是當有人發表『迴響』時, Bayesian Filter 在作訓練的程式啊!

你有改過程式嗎?

Mark
已記錄
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #3 於: 二月 28, 2006, 09:29:09 下午 »

你可以看一下在lt_bayesian_tokens table 中的 token 這個欄位嗎?他的欄位長度是多少?

Mark
已記錄

TomexOu
一般會員
***
文章: 117



檢視個人資料
« 回覆文章 #4 於: 三月 01, 2006, 12:45:01 上午 »

我的社群某會員也發生這樣的問題並寫信告訴我,
但我用自己的帳號測試卻沒有貝氏訓練的token錯誤
反倒是insert文章時有寫入articles表格,卻沒寫入articles_text表格
造成標題及內容都呈現空白。

我作了假資料測試,發現問題出在1.0.3版的articles_text表格若使用新建的話(非升級)
它最後一個欄位mangled_topic是NOT NULL,偏偏最基本的po文它卻是null值
就造成問題了!

這是1.0.3 articles_text schema:
程式碼:
   $Tables[24]["code"] = "CREATE TABLE {dbprefix}articles_text (
   id int(10) NOT NULL auto_increment,
   article_id int(10) NOT NULL DEFAULT 0,
   text TEXT NOT NULL DEFAULT '',
   topic TEXT NOT NULL DEFAULT '',
   normalized_text TEXT NOT NULL DEFAULT '',
   normalized_topic TEXT NOT NULL DEFAULT '',
   mangled_topic text NOT NULL        // *********HERE*********
   PRIMARY KEY (id),
   KEY article_id (article_id),
   FULLTEXT KEY normalized_text (normalized_text),
   FULLTEXT KEY normalized_topic (normalized_topic),
   FULLTEXT KEY normalized_fields (normalized_text, normalized_topic)
   ) TYPE=MyISAM;";

我修正該欄位值為允許NULL就ok了! 其他欄位倒都會insert初值。


至於token值的error,我再追追看是啥問題!
已記錄

我的LifeType測試環境:
Win2003 R2 Enterprise/IE7.0/XAMPP with Apache 2.2.6 + PHP 5.2.4 + MySQL 5.0.45 /LifeType 1.2.5/GD2.0/Grey Template
Dabu網誌
TomexOu
一般會員
***
文章: 117



檢視個人資料
« 回覆文章 #5 於: 三月 01, 2006, 12:52:38 上午 »

我的token欄位長度是: token char(100) default NULL
這是1.0.3新建的定義長度。

目前我先在全域貝氏過濾那兒仍啟動功能
但選擇假如可疑就「直接刪除」,讓它不進資料庫,看是否能解決問題...??

對了,錯誤訊息為:

Fatal error: Uncaught exception 'Exception' with message 'BayesianTokens::updateOccurrencesFromTokensArray: Cannot update occurrences of token 'SEVENi'.' in C:\lifetype\class\dao\bayesiantokens.class.php:194 Stack trace: #0 C:\lifetype\class\dao\bayesiantokens.class.php(164): BayesianTokens->updateOccurrencesFromTokensArray('6', Array, 0, 1, NULL, 1) #1 C:\lifetype\class\bayesian\bayesianfiltercore.class.php(87): BayesianTokens->incNonSpamOccurrencesFromTokensArray('6', Array, NULL, 1) #2 C:\lifetype\class\bayesian\bayesianfiltercore.class.php(108): BayesianFilterCore->train('6', '???????????????...', '???????????????...', '', '', '', false) #3 C:\lifetype\class\action\admin\adminaddpostaction.class.php(122): BayesianFilterCore->trainWithArticle(Object(Article)) #4 C:\lifetype\class\controller\controller.class.php(309): AdminAddPostAction->perform() #5 C:\lifetype\admin.php(41): Controller->process(Array, 'op') in C:\lifetype\class\dao\bayesiantokens.class.php on line 194
« 最後編輯時間: 三月 01, 2006, 12:55:50 上午 由 tomex_ou » 已記錄

我的LifeType測試環境:
Win2003 R2 Enterprise/IE7.0/XAMPP with Apache 2.2.6 + PHP 5.2.4 + MySQL 5.0.45 /LifeType 1.2.5/GD2.0/Grey Template
Dabu網誌
lss
我不是被~拉~~出來的,不要叫我大大!
總版主
超級會員
*****
文章: 1511



檢視個人資料 個人網站
« 回覆文章 #6 於: 三月 01, 2006, 08:20:04 上午 »

.........
我作了假資料測試,發現問題出在1.0.3版的articles_text表格若使用新建的話(非升級)
它最後一個欄位mangled_topic是NOT NULL,偏偏最基本的po文它卻是null值
就造成問題了!
..........
我記得已前在 trace 這部份的程式時,如果 mangled_topic 是空的,LT 會自動將 topic (文章標題)做轉換來填入這個欄位(中文的文章標題經常被轉的亂七八糟),所以 not null 應該沒問題才對? 1.0.3 應該也不會改這部份啊?晚點找時間再看看。

lss
已記錄

沒找過 常見問題集或不知道 如何在 LifeType 中文開發論壇發問的人,恕不回答問題
TomexOu
一般會員
***
文章: 117



檢視個人資料
« 回覆文章 #7 於: 三月 01, 2006, 09:38:54 上午 »

mangled_topic是什麼意思呢?
會不會是php5+mysql5搞的鬼??
已記錄

我的LifeType測試環境:
Win2003 R2 Enterprise/IE7.0/XAMPP with Apache 2.2.6 + PHP 5.2.4 + MySQL 5.0.45 /LifeType 1.2.5/GD2.0/Grey Template
Dabu網誌
lss
我不是被~拉~~出來的,不要叫我大大!
總版主
超級會員
*****
文章: 1511



檢視個人資料 個人網站
« 回覆文章 #8 於: 三月 01, 2006, 09:57:39 上午 »

mangled_topic是什麼意思呢?
mangled_topic 就是編輯文章時,右上方的那個短標題欄位。如果你用自訂網址時,他可以對應到 {postname} 。
若寫文章時沒有自己加短網址,lifetype 會用文章標題自己幫你生一個短標題,用英文的演算法 昏昏欲睡
所以,若要使用自訂網址,又要用 {postname} 的話,要記得自己用英文寫短標題。但是大部份的人一定懶得再寫一個英文的短標題,所以我們都建議使用自訂網址時,採用 {postid} 。
會不會是php5+mysql5搞的鬼??
這個就得再看看了。

很多人建議把 mangled_topic 改成 null 屬性,如果未來打死不用自訂網址的話,那是無所謂啦。但是若未來有相關的解決方案的話,現在這麼做等於先把自己的路堵死了,而且,不使用 mangled_xxx 欄位來當網址用的話,那不如直接用簡潔網址,方便多了,也比較不耗資源。

lss
已記錄

沒找過 常見問題集或不知道 如何在 LifeType 中文開發論壇發問的人,恕不回答問題
TomexOu
一般會員
***
文章: 117



檢視個人資料
« 回覆文章 #9 於: 三月 01, 2006, 10:02:13 上午 »

謝謝lss的回答,我了解它所處的地位了!
已記錄

我的LifeType測試環境:
Win2003 R2 Enterprise/IE7.0/XAMPP with Apache 2.2.6 + PHP 5.2.4 + MySQL 5.0.45 /LifeType 1.2.5/GD2.0/Grey Template
Dabu網誌
頁: [1]
LifeType 中文開發論壇  |  支援  |  安裝與設定  |  發表文章時出現 這問題 « 上篇主題 下篇主題 »
    前往: