作者licor710 (无言)
看板C_Sharp
标题Re: [问题] StreamReader的ReadLine溢位吗?
时间Mon Sep 12 04:22:44 2011
原先你的方法,每一篇文章所花费的时间为
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