使用Python将PDF转换为一系列图像

我正在尝试使用Python将多页PDF转换为一系列的JPEG。 我可以使用可用工具轻松地将PDF分成单独的页面,但是我一直无法find任何可以将PDF转换为图像的东西。 PIL不起作用,因为它不能读取PDF文件。 我发现的两个选项是通过shell使用GhostScript或ImageMagick。 这对我来说不是一个可行的select,因为这个程序需要跨平台的,我不能确定这些程序中的哪一个程序将在它将被安装和使用的机器上可用。 有没有可以做到这一点的Python库?

REST – 支持多种可能的标识符

对于我正在处理的网站,我们正在改进我们针对某种资源types的url,特别是从数字ID转向唯一的描述性string。 一个类似的例子是从数字数据库ID识别用户到通过用户名(而不是我们特定的情况,但是类似的)识别用户。 因此,访问用户信息的URL过去如下所示: /users/48573 现在看起来像 /users/thisisausername. 唯一的问题是,我们仍然需要能够以某种方式通过数字ID获取它们,对于API的传统消费者。 我们不需要自己redirectREST URL(例如/users/48573不应该redirect到/users/thisisausername ),我们只需要一种方法来使用旧的标识符来获取正确的数据。 该解决scheme应该提供一种通过ID访问用户信息(方便地包括新标识符,用户名)或通过ID访问用户名的另一种方式。 一些可能的解决办法可能是 使用节点来指定一些替代的标识方法,例如/users/byid/48573 使用查询参数指定一些替代方法的标识,例如/users/48573?fetchby=id或/users/48573?byid=true 将用户名作为另一个资源处理,例如/identifiers/username/48573 哪些(如果有的话)最接近正确的REST? 你将如何处理这个问题?

真实世界的错字统计?

我在哪里可以find一些现实世界的错字统计? 我试图将人们的input文本与内部对象相匹配,而且人们往往会犯拼写错误。 有两种错误: typos – “Helllo”,而不是“星期六”,而不是“你好”/“Satudray”等。 Spelling – “芝加哥”而不是“芝加哥” 我使用Damerau-Levenshtein距离作为拼写错误( 双倍的Metaphone拼写)(Python实现在这里和这里 )。 我想关注Damerau-Levenshtein(或简单的edit-distance )。 教科书的实现总是使用“1”来表示删除,插入replace和换位的权重。 虽然这很简单并且考虑到很好的algorithm,但它不符合“现实”/“真实世界的概率”。 例子: 我确定“Helllo”(“Hello”)的可能性大于“Helzlo”,但它们都距离编辑距离。 在QWERTY键盘上,“Gello”比“Qello”更接近“Hello”。 Unicode音译:“慕尼黑”和“慕尼黑”之间的“真实”距离是多less? “现实世界”权重应该是删除,插入,replace和换位? 即使Norvig非常酷的拼写纠正器使用非加权编辑距离。 顺便说一句,我敢肯定,重量需要是function,而不是简单的浮动(按照上面的例子)… 我可以调整algorithm,但是我可以在哪里“学习”这些权重? 我无法访问Google规模的数据 … 我应该猜他们吗? 编辑 – 试图回答用户的问题: 由于上述原因,我目前的非加权algorithm在遇到错字时经常失败。 “星期四回归”:每个“真实的人”都可以很容易地告诉周四比周二更有可能,但它们都是一个编辑距离! (是的,我做logging和衡量我的performance)。 我正在开发一个NLP旅游search引擎,所以我的字典包含25K目的地(预计将增长到100K),时间expression〜200(预期1K),人物expression〜100(预计300),货币expression〜100(预期500 ),“胶合逻辑词”(“from”,“beautiful”,“apartment”)〜2K(预计10K)等等… 编辑距离的使用对于每个上述单词组是不同的。 我试图“明显的时候自动校正”,例如,距离字典中的另外一个单词只有1个编辑距离。 我还有许多其他的手工调整的规则,例如,距离长度大于4的字典单词距离不超过2个编辑距离的双倍音位修正…当我从现实世界的input中学习时,规则列表不断增加。 “有多less对词典在你的门槛内?”:那么,这取决于“花哨的权重系统”和现实世界(未来)的input,不是吗? 无论如何,我有广泛的unit testing,以便我对系统做出的每一个改变只会使它变得更好(当然基于过去的input)。 大多数小于6个字母的单词距离距离另一个字典条目1个编辑距离的单词的编辑距离在1个编辑距离内。 今天当有两个字典条目与input距离相同时,我尝试应用各种统计数据来更好地猜测用户的意思(例如,法国巴黎更有可能出现在我的search中,而不是伊朗的帕里兹)。 select一个错误的单词的成本是向最终用户返回半随机(通常是荒谬的)结果,并可能失去一个客户。 不理解的代价稍微便宜一些:用户会被要求重新修改。 复杂性的代价是否值得呢? 是的,我确定它是。 你不会相信大量的错别字的人扔在系统,并期望它的理解,我可以肯定使用精确度和召回提高。

在httpd.conf中更改后重新启动httpd

在更改httpd.conf文件后,是否需要重新启动httpd才能使更改生效?

如何设置Cmake来生成只有标题的项目?

标题说这一切:我想要设置仅头C ++(或C)库项目,但无法find一个干净的方式。 经过一番search,我发现你不能使用add_library来设置一个普通的库来做到这一点,因为它需要一个可编译的源文件。 一种方法是使用add_custom_target而不是这样: # Get all headers (using search instead of explicit filenames for the example) file( GLOB_RECURSE XSD_HEADERS *.hxx ) add_custom_target( libsxsd SOURCES ${XSD_HEADERS} ) 但是这似乎并不完全在这里工作,因为我无法看到VS2010中生成的项目的来源。 我不知道这是否是一个错误,或者如果我做错了,或者如果有一个最好的方式来做到这一点,所以如果你有一个简单的解决scheme,请成为我的客人。

用Java创buildWindows Metro风格的应用程序?

我知道如何在Java中创build小型桌面应用程序。 我想知道,我可以在Java中制作Windows Metro风格的应用程序吗? 因为在网上只提到了C ++ / C / C#/ JavaScript等。 如果是的话,请给我一些参考,以便快速启动。 如果不是哪一个将是最简单的语言开始?

C代码循环性能

我的应用程序中有一个乘加内核,我想提高它的性能。 我使用Intel Core i7-960(3.2 GHz时钟),并已经使用SSE内部函数手动实现了内核,如下所示: for(int i=0; i<iterations; i+=4) { y1 = _mm_set_ss(output[i]); y2 = _mm_set_ss(output[i+1]); y3 = _mm_set_ss(output[i+2]); y4 = _mm_set_ss(output[i+3]); for(k=0; k<ksize; k++){ for(l=0; l<ksize; l++){ w = _mm_set_ss(weight[i+k+l]); x1 = _mm_set_ss(input[i+k+l]); y1 = _mm_add_ss(y1,_mm_mul_ss(w,x1)); … x4 = _mm_set_ss(input[i+k+l+3]); y4 = _mm_add_ss(y4,_mm_mul_ss(w,x4)); } } _mm_store_ss(&output[i],y1); _mm_store_ss(&output[i+1],y2); _mm_store_ss(&output[i+2],y3); _mm_store_ss(&output[i+3],y4); } 我知道我可以使用打包的fp向量来提高性能,而且我已经成功地做到了这一点,但是我想知道为什么单个标量代码无法满足处理器的峰值性能。 这个内核在我的机器上的性能是每个周期约1.6个FP操作,而每个周期最多可以有2个FP操作(因为FP + FP […]

在Meteor应用程序中实现MongoDB 2.4的全文search

我正在考虑将全文search添加到meteor应用程序。 我知道MongoDB现在支持这个function,但是我有一些关于实现的问题: 在Meteor应用程序中启用文本searchfunction( textSearchEnabled=true )的最佳方式是什么? 有没有办法从您的应用程序内添加索引( db.collection.ensureIndex() )? 如何从Meteor应用程序中运行Mongo命令(即db.quotes.runCommand( "text", { search: "TOMORROW" } ) )? 既然我的目标是把search添加到望远镜 ,我正在寻找一个“即插即用”的实现,只需要最less的命令行魔术,甚至可以在Heroku或* .meteor.com上工作。

读取文件数据而不保存在Flask中

我正在写我的第一个烧瓶应用程序。 我正在处理file upload,基本上我想要的是读取上传的文件的数据/内容而不保存,然后打印在结果页面上。 是的,我假设用户总是上传文本文件。 这里是我正在使用的简单的上传function: @app.route('/upload/', methods=['GET', 'POST']) def upload(): if request.method == 'POST': file = request.files['file'] if file: filename = secure_filename(file.filename) file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) a = 'file uploaded' return render_template('upload.html', data = a) 现在,我正在保存文件,但是我需要的是包含文件内容/数据的“一个”variables。任何想法?

像MSQRD / SnapChat的脸部filter实现

我想开发生动的脸部filter作为MSQRD / Snapchat实时filter,但无法find我应该如何继续我应该使用增强现实框架和检测面部或使用核心图像来检测面部和相应的过程。 请让我知道,如果有人有这个想法如何实施相同?