案例 – 监测过程中的案例[]在一个非常大的信息

前端之家收集整理的这篇文章主要介绍了案例 – 监测过程中的案例[]在一个非常大的信息前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在对一个非常大的文本进行操作(在一个文件中大约有290MB的纯文本).进入Mathematica 8之后,我正在开始运作,把它分解成小写字,等等,所以我可以开始文本分析.

问题是这些过程需要很长时间.有没有办法通过数学来监控这些操作?对于具有变量的操作,我使用ProgressIndicator等.但是这是不同的.我搜索的文档和StackOverflow并没有变得类似.

在下面我想监视Cases []命令的进程:

input=Import["/users/USER/alltext.txt"];
wordList=Cases[StringSplit[ToLowerCase[input],Except[WordCharacter]],Except[""]];

解决方法

通过将“counter”操作注入到匹配的模式中,可以查看StringSplit和Cases操作的进度.以下代码暂时显示两个进度条:第一个显示由StringSplit处理的字符数,第二个显示由案例处理的字数:
input = ExampleData[{"Text","PrideAndPrejudice"}];

wordList =
  Module[{charCount = 0,wordCount = 0,allWords},PrintTemporary[
      Row[
        { "Characters: ",ProgressIndicator[Dynamic[charCount],{0,StringLength@input}]
        }]]

  ; allWords = StringSplit[
        ToLowerCase[input],(_ /; (++charCount; False)) | Except[WordCharacter]
      ]

  ; PrintTemporary[
      Row[
        { "Words:      ",ProgressIndicator[Dynamic[wordCount],Length@allWords}]
        }]]

  ; Cases[allWords,(_ /; (++wordCount; False)) | Except[""]]

  ]

该技术的关键是两种情况下使用的模式与通配符_匹配.然而,该通配符被总是失败的条件所守卫,但直到它增加了一个计数器作为副作用.然后处理“真实”匹配条件作为替代.

猜你在找的HTML相关文章