Foxtable(狐表)用户栏目专家坐堂 → [求助] contains 判断运算速度慢


  共有3224人关注过本帖树形打印复制链接

主题:[求助] contains 判断运算速度慢

帅哥哟,离线,有人找我吗?
machle
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:358 积分:4035 威望:0 精华:0 注册:2014/7/29 23:42:00
[求助] contains 判断运算速度慢  发帖心情 Post By:2019/2/11 13:08:00 [只看该作者]

数据量比较大,想计算每一个value2中的词在每一个value1句子中出现的总次数。运算的时候,点了以后就不动,程序死掉了。

然后我就在每个循环中增加了一个messagebox,想看看是否计算正确,这样每次就蹦出计算结果来,发现是对的。问题出在那条contains语句,我该怎么调试。

谢谢!

For i = 0 To Tables("WordAndTimes").Rows.Count-1                  ‘3万条数据’
    sum(i) = 0
    For j = 0 To Tables("JournalInformation").Rows.Count-1        “3万条数据”
        If Value1(j).Contains(Value2(i)) Then
            sum(i) = sum(i) +1
        End If
    Next    
    Tables("WordAndTimes").Rows(i)("文件频率") = sum(i)/Tables("JournalInformation").Rows.Count    
    
    messagebox.show( Tables("WordAndTimes").Rows(i)("文件频率") )
       
Next


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/11 14:53:00 [只看该作者]

 

请做一个具体的实例发上来测试,说明要做到的效果。

 


 回到顶部
帅哥哟,离线,有人找我吗?
machle
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:358 积分:4035 威望:0 精华:0 注册:2014/7/29 23:42:00
回复:(有点甜) 请做一个具体的实例发上来测...  发帖心情 Post By:2019/2/12 22:08:00 [只看该作者]

3万多句话,将它们逐一分词,将它们总结出了3万个词,现在想看看这3万词中的每一个,分别在这3万多句话中的多少个句子里出现过。

 回到顶部
帅哥哟,离线,有人找我吗?
machle
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:358 积分:4035 威望:0 精华:0 注册:2014/7/29 23:42:00
回复:(有点甜) 请做一个具体的实例发上来测...  发帖心情 Post By:2019/2/12 22:10:00 [只看该作者]

 循环里这个contains 计算速度非常慢。
If Value1(j).Contains(Value2(i)) Then
            sum(i) = sum(i) +1
 End If

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110642 积分:563118 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/2/12 22:19:00 [只看该作者]

包含的判断一向都不快,更何况在循环里。

这种建议直接使用SQL进行查询

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/13 9:51:00 [只看该作者]

 

3万*3万=9亿 次,能不慢吗?

 

做个具体例子发上来测试,看是否可以优化。


 回到顶部