Re: [問題] StreamReader的ReadLine溢位嗎?
原先你的方法,每一篇文章所花費的時間為
82045 乘上 String.indexOf() 的時間
既然 corpus 中的每行都有半形空格把詞分開
就用 split(' ') 把 corpus 讀出的行分成 string 陣列
再把每個 string 個別去 Dictionary 尋找
一篇文章有多少個詞就找幾次,找 n 次即可
在此文章中已算過的詞,在相同文章中再次出現就不會再算。
因此花費的時間將改善為
文章的詞數 (一定小小於八萬) 乘上 Dictionary.ContainsKey() 的時間
http://paste.plurk.com/show/656610/
你試試看會不會快一點...
※ 引述《check (check)》之銘言:
: 各位板友大家好,我在處理一個中文字統計出了問題,
: 想請問板友這問題是出在哪邊?
: 我有兩個檔案Dictionary.txt裡每一列即是一個中文詞,共82045個。
: 另一個是corpus4.txt,每一列即是一篇中文文章,詞與詞已經用半形空白格開。
: 共225列。
: 我現在要做的是統計每個詞在各篇文章中是否曾出現過 (出現過即算)
: 預計輸出檔案格式為
: 詞一 次數
: 詞二 次數
: ...
: 以此類推,其中次數會介於0~225之間。
: 不過我的程式碼卻跑不出結果來,請板友提點一下
: http://paste.plurk.com/show/646536
: 我是猜測ReadLine溢位,或者是
: if (wtemp.IndexOf(dic[i].ToString()) != -1)
: 這邊有問題?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.240.1.250
討論串 (同標題文章)
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章