小编teh*_*ter的帖子

如何从Project Gutenberg文本中删除页眉/页脚?

我尝试过各种方法从Project Gutenberg文本中剥离许可证,用作语言学习项目的语料库,但我似乎无法想出一种无监督,可靠的方法.到目前为止,我提出的最好的启发式方法是剥离前二十八行和后一个398,它们适用于大量文本.关于我可以自动剥离文本的方法的任何建议(对于许多文本非常相似,但在每种情况下略有不同,以及一些不同的模板),以及如何验证该文本的建议文本已被准确删除,会非常有用.

text-processing nlp heuristics corpus stripping

19
推荐指数
2
解决办法
2634
查看次数

python的切片有多快

为了节省空间和必须保持不同源之间数据一致性的复杂性,我正在考虑存储某些子串的开始/结束索引,而不是存储子串本身.诀窍是,如果我这样做,我可能会一直创建切片.这是要避免的吗?切片操作员是否足够快我不需要担心?新对象创建/销毁开销怎么样?


好的,我吸取了教训.除非您尝试修复一个真正的问题,否则不要进行优化.(当然这并不意味着对不必要的错误代码,但这不是重点......)另外,在堆栈溢出之前测试和配置文件.= D谢谢大家!

python optimization

9
推荐指数
1
解决办法
5932
查看次数

如何将字符串(不是字符串文字)转换为blazehtml属性/元素内容?

blazehtml教程和其他博客文章非常清楚如何使字符串文字工作.我有那个.但是,如何将字符串(字节串,Data.Text等也可以工作)通常用于元素的属性/内容.Blazehtml看起来很棒,但如果没有它,它似乎毫无用处.= P

这里是示例输出和代码来显示确切的问题:


{-# LANGUAGE OverloadedStrings #-}

import Prelude
import qualified Prelude as P
import Text.Blaze.Html5
import Text.Blaze.Html5.Attributes
import qualified Text.Blaze.Html5 as H
import qualified Text.Blaze.Html5.Attributes as A

makeLink dest cont = renderHtml $ a ! src dest $ cont
Run Code Online (Sandbox Code Playgroud)
*Main> let foo = "foo"
*Main> let bar = "bar"
*Main> makeLink foo bar

:1:9:
    Couldn't match expected type `AttributeValue'
           against inferred type `[Char]'
    In the first argument of `makeLink', namely `foo'
    In the expression: makeLink foo bar
    In the …

haskell types

8
推荐指数
1
解决办法
945
查看次数

如何在OSX中的设备挂载上运行脚本

我想创建一个脚本,当我将它连接到我的macbook pro时自动备份我的kindle文件.编写脚本完全符合我的能力,但我不知道在mount上自动运行脚本的最佳方法是什么.

macos mount daemon

7
推荐指数
1
解决办法
3350
查看次数

为什么基于haskell枚举器的IO经常调用sigprocmask?

修订概要

好吧,看起来系统调用肯定与GC有关,而潜在的问题只是GC经常发生.这似乎与splitWhen和pack的使用有关,我可以通过分析来判断.

splitWhen的实现将每个块从惰性文本转换为严格文本,并将它们连接起来,因为它构建了一个块缓冲区.这必然会分配很多.

pack,因为它从一种类型转换为另一种类型,必须分配,并且这是在我的内部循环中,所以这也是有意义的.

原始问题

我在基于haskell枚举器的IO中偶然发现了一些令人惊讶的系统调用活动.希望有人可以对此有所了解.

我一直在玩一个快速perl脚本的haskell版本,我曾经写过几个月,开启和关闭.该脚本从每一行读入一些json,然后打印出特定的字段(如果存在).

这是perl版本,以及我如何运行它.

cat ~/sample_input | perl -lpe '($_) = grep(/type/, split(/,/))' > /dev/null
Run Code Online (Sandbox Code Playgroud)

这是haskell版本(它与perl版本类似地调用).

{-# LANGUAGE OverloadedStrings #-}
import qualified Data.Enumerator as E
import qualified Data.Enumerator.Internal as EI
import qualified Data.Enumerator.Text as ET
import qualified Data.Enumerator.List as EL
import qualified Data.Text as T
import qualified Data.Text.IO as TI
import Data.Functor
import Control.Monad
import qualified Data.Text.Lazy as TL
import qualified Data.Text.Lazy.IO as TLI
import System.Environment
import System.IO (stdin, stdout)
import GHC.IO.Handle (hSetBuffering, BufferMode(BlockBuffering))

fieldEnumerator …
Run Code Online (Sandbox Code Playgroud)

performance haskell ghc

7
推荐指数
2
解决办法
445
查看次数

什么在Rust中意味着什么?

什么是::拉斯特语法,看到这里,意思是:

fn chunk(n: uint, idx: uint) -> uint {
    let sh = uint::BITS - (SHIFT * (idx + 1));
    (n >> sh) & MASK
}
Run Code Online (Sandbox Code Playgroud)

在像Haskell这样的语言中,它意味着一个类型提示,但是这里编译器已经有了一个值类型的注释,所以它似乎很可能是类型转换.

syntax rust

6
推荐指数
1
解决办法
1975
查看次数

递归使用eval()是一种检查程序执行的好方法吗?

在过去的几天里,我一直在构建一个基本的实时评估javascript开发环境(我称之为WEPL.),并意识到能够将错误消息与行号相关联是件好事.不幸的是,eval()并没有提供一个很好的方法,我可以找到.

到目前为止我提出的解决方案是在eval()之前转换源,这样它就是一组嵌套调用eval()的包装器,它在eval之前记录一些信息,检查eval是否成功,以及然后使用该信息向用户输出更有用的故障排除信息.

我的问题是,为什么这可能是一个坏主意?我需要解决哪些问题才能确保效果良好?

我的意思是一种转变的例子,只是为了使这个具体化.

这个

if (cond) {
  return foo + bar;
}
else {
  return baz + quux;
}
Run Code Online (Sandbox Code Playgroud)

变成了这个

if (myEval('cond')) {
  return myEval("myEval(\"foo\") + myEval(\"bar\")");
else {
  return myEval("myEval(\"baz\") + myEval(\"quux\")");
}
Run Code Online (Sandbox Code Playgroud)

我显然没有包装最高级别,虽然我可以,而程序化版本会.

javascript interpreter metaprogramming

5
推荐指数
1
解决办法
503
查看次数

gcc能否找到它安装的标头?

我遇到了一个似乎是由gcc没有找到随附的标头引起的问题.我不太了解C/GCC,我想我会检查编译器应该始终能够找到那些头是否安全.也许设置-I参数会覆盖这个?还是其他什么时髦的?

原始问题是在github上的鞋子这个问题.

原始问题

嗨!我已经尝试在10.8上构建,使用非llvm gcc,如另一个问题所述,并通过调整rakefile来在正确的位置获取正确的sdk.

它仍然无法编译.

这是错误报告的开头(它真的很长)

 new-host-2:shoes benjamingattet$ rake
 gcc -I. -c -o shoes/app.o -Wall -I/usr/local/include -I/usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin12.0.0 -I/usr/local/Cellar/ruby/1.9.3-p194/include/ruby-1.9.1 -I/usr/local/Cellar/ruby/1.9.3-p194/include/ruby-1.9.1/x86_64-darwin12.0.0 -O -DRUBY_1_9 -DSHOES_QUARTZ -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -fpascal-strings -Os -w -pipe -march=core2 -msse4.1 -mmacosx-version-min=10.8 -fno-common -x objective-c -fobjc-exceptions -isysroot /Developer/SDKs/MacOSX10.8.sdk -arch x86_64 shoes/app.c
 shoes/app.c:5:18: error: glib.h: No such file or directory
 In file included from shoes/app.c:6:
 ./shoes/app.h:13:19: error: cairo.h: No such file or directory
 In file included from /usr/local/Cellar/ruby/1.9.3-p194/include/ruby-1.9.1/ruby.h:32,
 from ./shoes/app.h:14,
 from shoes/app.c:6:
 /usr/local/Cellar/ruby/1.9.3-p194/include/ruby-1.9.1/ruby/ruby.h:48:21:
 error: string.h: …
Run Code Online (Sandbox Code Playgroud)

c gcc

5
推荐指数
1
解决办法
3449
查看次数

使用快照中的阅读器monad(或快照中的monad变换器)

有人可以展示如何在阅读器monad中使用snap monad吗?Monad变形金刚迷惑我.(或者,我很乐意接受有关monad变换器的教程的建议,以及查看光线的方法,并最终了解它们.)

编辑:糟糕; 忘了说明我实际上要做的事情,而不是寻求特定事情的帮助.战略,而不是战术.我特别希望在所有处理程序之间共享数据库连接/池,而不必在指定路由时显式传递该数据库连接/池.似乎读者monad将是实现这一目标的方法.

monads haskell monad-transformers haskell-snap-framework

4
推荐指数
1
解决办法
719
查看次数