re: SVM入門(十)將SVM用于多類分類 Jasper 2012-09-12 13:02
@無名
請注意本文發表于2009年3月;您所指的地址發表于2010年9月,整整晚了18個月,究竟誰是原創,不需要我多解釋了吧。
不是的,在代碼中250就是數字的250,加上引號就變成字符串了。@hellwen
如果要談什么重要還是不重要,那首先要牢記評判重要的標準,或者說,明確自己說的指標針對什么問題而言重要還是不重要。文中的觀點是告訴大家TFIDF在特征選擇階段不重要,而在分類階段很重要。但有太多的朋友在辯駁時混淆了問題的討論范圍。您也一再強調TFIDF值一樣的詞對分類的影響云云,可見您其實也在用我的結論往另一個問題上套。不過學習的過程大抵如此,我們一錯再錯,一錯再錯,但卻越來越好,越來越好。希望能和大家一起進步。@eric
@Miao
哦,需要一個Apache的commons的jar包,可以去www.apache.org找到。
@Miao
查看一下自己使用的JDK版本,保證JDK5以后.另外我沒有測試過非開源版的ICTCLAS,但是據他們的文檔和ICTCLAS4j的作者講,非開源的版本詞庫要全得多,速度也快得多。
@tttt
請注意,本地的Application可以找到的資源,在Web服務器中未必找得到,所以請試著把ICTCLAS的詞典文件(也就是Data文件夾)放在正確的位置才可以。
@radar
準確的說,計算權重是為了能給每篇文章一個"唯一"的身份,就跟計算指紋不是為了得到指紋數據本身,而是為了得到唯一性一樣.我們需要一種指標,這種指標能讓計算機"看到"不同的兩篇文章確實不同,并且知道不同在哪里.只有能看到這種不同,計算機才能看出同類文章相似在哪里.如果有一種指標,它衡量每篇文章時結果都一樣,顯然程序沒法在這種數據基礎上學習分類的.因此形成向量表示實際是一個中間目的,終極的目的是為了讓文章之間看上去彼此不同,并且這種不同有所依據.
@lianghao.lee
連您自己都同意了我的觀點,即認為單純使用TFIDF值來判斷一個特征是否有區分度不夠,而應該考慮該值在類間的分布,這個分布情況,不管您給它起什么名字,它一定不叫TFIDF,它只是以TFIDF值為基礎,正如信息增益,卡方檢驗和互信息等方法全都是以特征的文檔頻率為基礎一樣,它們都不叫文檔頻率方法,只有直接依據文檔頻率大小排序的方法才叫做“文檔頻率特征選擇”(而且確實有這種方法)。因為說到底,我們從文本中能觀察到的量其實只有兩個:詞頻和文檔頻率,所有的方法一律以這兩個量為計算基礎,但不能由此把所有的方法都叫做詞頻方法或者文檔頻率方法。TFIDF也是一種很基礎的量(它是由詞頻和文檔頻率計算來的),同樣它也帶來了較詞頻和文檔頻率單獨使用完全不同的效果。
如果您同意這些,您就會明白我所說的“TFIDF不能用來做特征選擇”,正是指單獨使用一個特征的TFIDF值來判斷毫無道理,卡方檢驗完全基于文檔頻率計算,但單看文檔頻率也毫無道理(好吧,文檔頻率有那么一點道理,呵呵)。
另外,兩個文檔的相似度在有的分類模型里(例如支持向量機)里完全沒有用處,您通過文檔在空間中的分布也可以看出來,一些位于類別邊界附近的文檔,其實與另一個類里的文檔更加相似(反而與同類的文檔不那么相似),在這種模型中,我們僅通過它所處的位置來判斷分類,而絲毫不受它與誰相似的影響。相信這一點您一想就能明白。當然這里所爭論的乃是對分類來說文檔相似度是否一定有用(對有的方法完全沒用),而不是說TFIDF對判斷相似是否有用,我要說,對文檔相似度計算來說,TFIDF是非常有效的。
@lianghao.lee
就是因為不同的人在分類的不同階段對“重要”的定義彼此不同,所以大家會在一項指標重要還是不重要上存在分歧。注意我在談特征選擇階段特征對類別區分度方面的“重要”,而您糾結在文章向量表示時相似度判別時的“重要”。這種混淆很常見,所以也不能怪您,如果您有興趣繼續在文本分類方面深入,相信您有一天會得到不同的理解。
@koala++
如果假設各個特征項是獨立的,可以簡單的計算每個特征的增益,然后取和。
如果假設不是獨立的,就把他們的組合看成是一個新的變量,統計這個新變量可能的取值,每個取值取到的概率,重復運用信息增益的公式計算即可。
re: SVM入門(七)為何需要核函數 Jasper 2009-04-19 10:08
@Lebee_leon
是,還要再回過頭來說的。
@志大才疏
遺憾的是基本沒有什么文獻會仔細的說,這可能是學術論文的通病吧,總希望讀者看不懂才好。
@志大才疏
注意我說過,當你忽略類別的大小時用1除以類別總數。您的做法是考慮了類別大小的方法。
re: SVM入門(一)至(三)Refresh Jasper 2009-03-30 16:31
@swift7593
就是這個地方挺容易讓人誤解的,中間那條直線的表達式應該是g(x)=0,它和g(x)可是兩回事哦。
re: SVM入門(九)松弛變量(續) Jasper 2009-03-24 15:32
@alemist
是的,還沒有寫完,呵呵。
re: 文本分類入門(十)特征選擇算法之開方檢驗 Jasper 2009-03-23 15:35
@Lebee_leon
我想說三點:
一是負特征對某些問題的分類是有幫助的,例如女性的第二性征對男性來說是負特征,但對判斷一個人是否為男性是很有幫助的,針對文本分類來說,負特征是否表征作用比正特征弱,尚沒有定論,因此不必急著剔除掉負特征.
二是負特征實際上也很容易被看出來,負特征一般特征值很大,但文檔頻率很小(因為它代表的是基本不會在某個類別出現的詞),我們特征選擇的時候,對每個類別也一般會先濾掉低頻詞(比如文檔頻率小于3的詞),這就剔除了很多的負特征.
三是從實驗數據的觀察來看,特征值很大的那些特征,極少有負特征,這個理論上沒有依據,純粹是觀察的結果.
綜合以上三點,我個人覺得負特征不是一個很大的問題,當然如果你的系統追求理論上的完備性,你也可以對此做些處理.
@yjwmylm
ICTCLAS因為有一個賣錢的商業版,所以這個開源的版本毛病還是比較多的。比如有一些詞庫中不存在的詞,就會扔空指針的錯誤,比如“深圳”,“大阪”這樣的詞。
還有對一些特殊的字符串模式,比如單引號隔幾個字符再加一個什么什么的,就會報錯(年代有些久遠,記不太清了)。還有一些特殊的字符,也會報錯。如果不是很重視這些偏門的東西,建議還是修改一下源代碼,把這樣的異常屏蔽下就好。
re: 文本分類入門(十)特征選擇算法之開方檢驗 Jasper 2009-03-21 13:12
@Lebee_leon
是這樣的,您稍微想一想就可以明白這代表什么樣的意義。
@leon
不好意思,沒有明白您的意思,“返回該頁沒有發現”是指什么?
re: 文本分類入門(十)特征選擇算法之開方檢驗 Jasper 2009-03-17 19:55
re: SVM入門(七)為何需要核函數 Jasper 2009-03-13 19:51
不是您那么理解的啦,我在原文中增加了說明,可以參考一下。
re: SVM入門(一)至(三)Refresh Jasper 2009-03-06 16:47
呵呵,您顯然忽略了我的提醒,在g(x)這個表達式中,x不是指橫坐標,這里的x 是一個二維向量,就是我們傳統的(x,y)(前面這個式子里的x才是橫坐標),您代進去看看,這個式子即有橫坐標,又有縱坐標,明明是條直線嘛(笑)……@志大才疏
我在"文本分類入門"系列文章的第十節把開方檢驗詳細講了一遍,有興趣可以關注.@小年
呵呵,想一想為什么聲明的部分是英文?因為任何編碼中英文字符總是相同的,因此無論使用什么編碼保存的文件,系統總是可以讀懂聲明部分(即使文件中的其他內容一律亂碼),因此聲明提供的信息才重要。@Matthew
re: 文本分類入門(十)特征選擇算法之開方檢驗 Jasper 2008-11-26 23:49
哎呀呀,多虧了您這么一說,我才發現原來寫好的第九節沒有貼上去,呵呵……@康橋陽光
未分詞的版本整個有100兆大,您可以加我的QQ49900829,有機會在線傳給您。
啊,你提醒了我,文章中關于Data文件夾放置的位置是錯的,正確的位置應該是你建的Eclipse項目的文件夾下,而不是bin目錄下,這回應該可以了吧。
re: [新聞] JRuby 1.1.2 發布 Jasper 2008-06-02 00:04
整來整去,發現不會個腳本語言不行了,用Java有時候真是大炮打蚊子.開始學習Ruby!!呵呵
re: iReport的簡單配置 Jasper 2008-03-04 10:52
請教一下iReport的問題:
我在XP操作系統上直接安裝iReport,安裝成功,也可以打開。
但是,在虛擬機中安裝了JDK\TOMCAT\ANT等等,并添加了一系列環境變量,再安裝iReport,反而無法打開,報:
Could not find the main class. Program will exit.
請問問題出在哪里呢?
謝謝!
session[:good] ||= Good.find(params[:id])
:代表什么?
不加“:”不行嗎?