小编Evg*_*eny的帖子

如何从写成单词的数字中读取值?

众所周知,数字可以用数字写成,也可以用它们的名字来表示.虽然有很多例子可以将123转换成123,但我找不到如何以相反的方式转换它的好例子.

一些警告:

  1. 基数/名义或序数:"一"和"第一"
  2. 常见的拼写错误:"四十"/"十四"
  3. 数百/数千:2100 - >"二十一",还有"二千一百"
  4. 分隔符:"十一二五二",还有"十一五十二"或"十一二十二"等等
  5. 口语:"三十多岁"
  6. 分数:'三分之一','五分之二'
  7. 俗名:'一打','一半'

可能还有更多可能尚未列出的警告.假设算法需要非常健壮,甚至可以理解拼写错误.

我应该阅读哪些领域/论文/研究/算法来学习如何写这些?信息在哪里?

PS:我的最终解析器应该真正理解3种不同的语言,英语,俄语和希伯来语.也许在稍后阶段会添加更多语言.希伯来语也有男/女数字,如"一个男人"和"一个女人"有不同的"一个" - "ehad"和"ahat".俄罗斯也有一些自己的复杂性.

谷歌在这方面做得很好.例如:

http://www.google.com/search?q=two+thousand+and+one+hundred+plus+five+dozen+and+four+fifths+in+decimal

(反过来也可以http://www.google.com/search?q=999999999999+in+english)

language-agnostic algorithm parsing nlp numbers

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

加载comet/server push iframe时停止浏览器"thomber of doom"

使用Comet或Ajax Long Pull技术时 - 通常使用iframe.虽然iframe正在等待关闭的长连接,但浏览器正在旋转它的悸动(进度/加载指示器).

一些网站,例如etherpad.com,设法让它停止.

他们是如何做到的呢?

ajax comet loading progress throbber

33
推荐指数
1
解决办法
1万
查看次数

如何将常用字典数据传递到django中的每个页面

我有一个公共数据{登录用户的消息号),以显示在每个页面上.我可以简单地传递给模板

dict={'messagenumber':5}
return render_to_response('template.html',dict,context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

但是如果我将这个dict数据传递到非常页面,那看起来很乏味.有没有更简单的方法将公共数据传递到每个页面?

谢谢

django django-templates

18
推荐指数
2
解决办法
4842
查看次数

如何对Django South"数据迁移"进行单元测试

我使用south创建了一个数据迁移,它采用了一个版本表并将其转换为:

major: 1, minor: 2, micro: 3, release: a
Run Code Online (Sandbox Code Playgroud)

变得更简单:

name: 1.2.3.a
Run Code Online (Sandbox Code Playgroud)

现在我想使用django单元测试(1.3beta)来测试这个数据迁移.

如何指定要使用的自定义夹具,我可以如何以编程方式向前滚动向前和向后滚动迁移?

unit-testing data-migration django-south

10
推荐指数
2
解决办法
1526
查看次数

如何声明一个方法是用python unittest装饰的?

我有一个装饰器,我想断言我的代码中的某些方法是用它装饰的.

import functools

def decorator(func):
    def _check_something(*args, **kwargs):
        # some logic in here
        return func(*args, **kwargs)
    return functools.wraps(func)(_check_something)

class MyClass(object):

    @decorator
    def my_method(foo, bar):
        pass
Run Code Online (Sandbox Code Playgroud)

我如何断言unittest(unitttest2)my_method@decorator没有人删除它,并没有忘记?

python unit-testing unittest2

10
推荐指数
2
解决办法
3153
查看次数

RSpec嘲笑:每个块

我想使用RSpec模拟为块提供固定输入.

红宝石:

class Parser
  attr_accessor :extracted

  def parse(fname)
    File.open(fname).each do |line|
      extracted = line if line =~ /^RCS file: (.*),v$/
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

RSpec的:

describe Parser
  before do
    @parser = Parser.new
    @lines = mock("lines")
    @lines.stub!(:each)
    File.stub!(:open).and_return(@lines)
  end

  it "should extract a filename into extracted" do
    linetext = [ "RCS file: hello,v\n", "bla bla bla\n" ]

    # HELP ME HERE ...
    # the :each should be fed with 'linetext'
    @lines.should_receive(:each)

    @parser.should_receive('extracted=')
    @parser.parse("somefile.txt")
  end
end
Run Code Online (Sandbox Code Playgroud)

这是一种通过将固定数据传递到其中来测试块内部正常工作的方法.但我无法弄清楚如何使用RSpec模拟机制进行实际喂食.

更新:看起来问题不是使用linetext,而是使用:

@parser.should_receive('extracted=')
Run Code Online (Sandbox Code Playgroud)

这不是它的调用方式,用红色代码替换它,self.extracted =有点帮助,但不知何故感觉不对.

ruby rspec mocking rspec-mocks

8
推荐指数
2
解决办法
7843
查看次数

浅深度git子模块更新或克隆

可能重复:
Git浅子模块

启动Git 1.6.5+ git clone有一个--recursive选项,也可以递归地克隆子模块.

我们项目中的子模块非常大(历史很多),有时需要很长时间来克隆,可以通过--depth 1选项保存.

有没有办法以--depth 1递归方式浅层克隆()这些子模块?

git git-submodules

8
推荐指数
0
解决办法
263
查看次数

用作CloudWatch Events目标时如何指定SQS消息属性?

我想使用AWS CloudWatch Events按照预定义的时间表向SQS发送消息。消息正文无关紧要,但是它确实需要几个消息属性。

在CloudFormation中创建此事件规则时,我找不到有关如何指定消息属性的任何文档。目前资源看起来像这样-

ScheduledEvent:
  Type: AWS::Events::Rule
  Properties:
    RoleArn: !Ref ScheduledEventRole
    ScheduleExpression: !Ref ScheduledEventRule
    Targets:
    - Arn: !Ref Queue
      Id: !GetAtt Queue.Name
      Input: "message body"
Run Code Online (Sandbox Code Playgroud)

要将属性发送到的消息正文应该是什么SQS

amazon-sqs amazon-web-services amazon-cloudwatch

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

Chef Ohai:如何使用gem_package新安装的Ruby

使用chef我有一个安装gem的简单配方,例如:

gem_package "passenger" do
  version node['passenger']['version']
end
Run Code Online (Sandbox Code Playgroud)

我还想用另一本食谱安装ruby,对于某些服务器可能是Ruby 1.9.3,对于其他服务器可能是Ruby Enterprise 1.8.7.所以我认为我可以使用gem_binaryohai执行此操作,如下所示:

gem_package "passenger" do
  version node['passenger']['version']
  gem_binary "#{languages['ruby']['bin_dir']/gem}"
end
Run Code Online (Sandbox Code Playgroud)

但问题开始了,因为languages['ruby']安装新的ruby时没有改变.Ruby Enterprise安装到via /opt/ruby-enterprise并将其自身添加到PATHvia,/etc/profile.d/ree.sh但是ohai在同一次运行期间没有被拾取,但是在下一次运行中会被拾取.

在第一次运行中,ohai表示languages['ruby']安装/opt/vagrant_ruby/bin/ruby时使用vagrantchef_solo配置.乘客宝石安装在错误的红宝石中.

如何ohai识别新安装的红宝石?

ruby chef-infra

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

如何扩展flow-bin以支持新的Node.js方法?

flow-bin当工具报告错误时,是否有办法解决错误,实际上它flow本身就是一个错误?

例如,使用Flow v0.62和Node.js Buffer#swap64方法:

Error: lib/index.js:88                                                                                           
 88:         int64buf.swap64() // turn into Little-Endian
                      ^^^^^^ property `swap64`. Property not found in                     
 88:         int64buf.swap64() // turn into Little-Endian
             ^^^^^^^^ Buffer
Run Code Online (Sandbox Code Playgroud)

根据Node的文档,我很确定该方法存在.我真的不想分叉Flow项目来修复这么小的东西.

在我等待Facebook接受拉取请求时是否有解决方法?

node.js flowtype

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