小编spe*_*ane的帖子

Python urllib2 Progress Hook

我正在尝试使用urllib2 http客户端在python中创建下载进度条.我查看了API(以及谷歌),似乎urllib2不允许您注册进度挂钩.但是旧版已弃用的urllib确实具有此功能.

有谁知道如何使用urllib2创建进度条或报告钩子?或者是否有其他一些黑客可以获得类似的功能?

python http urllib2 httpclient progress-bar

28
推荐指数
3
解决办法
2万
查看次数

使用NLTK将Tokenizer组合成语法和解析器

我正在通过NLTK书,我似乎无法做一些似乎是建立一个体面语法的自然的第一步.

我的目标是为特定的文本语料库构建语法.

(初步问题:我是否应该尝试从头开始语法或者我应该从预定义的语法开始?如果我应该从另一个语法开始,这对于英语开始是一个好的?)

假设我有以下简单的语法:

simple_grammar = nltk.parse_cfg("""
S -> NP VP
PP -> P NP
NP -> Det N | Det N PP
VP -> V NP | VP PP
Det -> 'a' | 'A'
N -> 'car' | 'door'
V -> 'has'
P -> 'in' | 'for'
 """);
Run Code Online (Sandbox Code Playgroud)

这个语法可以解析一个非常简单的句子,例如:

parser = nltk.ChartParser(simple_grammar)
trees = parser.nbest_parse("A car has a door")
Run Code Online (Sandbox Code Playgroud)

现在我想扩展这个语法来处理其他名词和动词的句子.如何在不用语法手动定义语法的情况下将这些名词和动词添加到我的语法中?

例如,假设我希望能够解析句子"汽车有轮子".我知道提供的标记器可以神奇地找出哪些单词是动词/名词等等.我怎样才能使用标记器的输出来告诉语法"轮子"是名词?

python grammar nlp nltk

25
推荐指数
3
解决办法
8469
查看次数

如何在执行多个请求时加速Python的urllib2

我正在使用python的urllib2库向特定主机发出几个http请求.每次发出请求时,都会创建一个新的tcp和http连接,这需要花费大量时间.有没有办法使用urllib2保持tcp/http连接活着?

python http urllib2

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

Android MediaPlayer - 有时即使播放音频也没有播放视频

我正在开发一个Android应用程序,我正在使用Android SDK MediaPlayer在我的应用程序中播放一些视频.当我在我的应用程序中播放视频时,大约五分之一,视频播放没有视频.这不是一个简单的编码错误,因为大多数时候视频播放都很完美.

我认为我的代码中的竞争条件导致了这个错误.但是,我添加了许多调试语句,当视频无法播放时,所有内容似乎都已正确设置.

我已经扫描了网络,并试图寻找解决方案,但没有一个是足够的(见下文).

有没有人遇到过这类问题?如果是这样,你做了什么?

类似问题:

MediaPlayer视频未播放

Android媒体播放器显示音频但没有视频

安卓视频,听到声音,但没有视频

更多细节:

  • 我在两部手机上遇到过这个漏洞.在三星充电视频播放80%的时间和20%的时间有音频,但没有视频.在T-Mobile Comet上,它更糟糕; 视频只播放约10%的时间.
  • 这不是文件的问题,我尝试了各种视频文件和编解码器,并得到了同样的问题.
  • 这对存储介质来说不是问题.我已经尝试播放存储在内部存储和SD卡上的视频,但两者都没有区别.我甚至尝试在播放之前阅读一些文件,希望系统会缓存它,但这似乎也没有帮助.

更新:

我一直在调试这个并查看logcat.我发现当视频工作时,logcat中出现如下内容:

09-28 00:09:03.651: VERBOSE/PVPlayer(10875): setVideoSurface(0x65638)
Run Code Online (Sandbox Code Playgroud)

但是当视频没有播放时,它看起来像是一个空条目:

09-28 00:03:35.284: VERBOSE/PVPlayer(10875): setVideoSurface(0x0)
Run Code Online (Sandbox Code Playgroud)

更新2:

当视频无法播放时,函数MediaPlayer.OnInfoListener带参数 what==MEDIA_ERROR_UNKNOWN(0x1)extra==35.我查看了Android代码库,试图确定未知错误35的含义.我遇到了文件pv_player_interface.h,它表明错误代码35对应于一个名为a的东西PVMFInfoTrackDisable.我用谷歌搜索了那个把我带到一个叫做文件的文章 pvmf_return_codes.pdf.该文件给了我以下难以理解的解释:

4.34.PVMFInfoTrackDisable

禁用特定轨道的通知.这个是基于每个轨道.对于未压缩的音频/视频格式,在选择内容中可用的轨道的过程中,如果解码器不支持轨道,则发送PVMFInfoTrackDisable事件.如有必要,该活动将在每个赛道发送一次.

我觉得我已经走了很长的路,但我没有找到答案......仍然在调查.

java video android media-player

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

Python - 有条理地捕获异常

是否有可能有条件地捕获python中的异常?我希望能够编写一个函数,以便调用者可以决定谁处理异常.

基本上,我想要这样的事情:

def my_func(my_arg, handle_exceptions):
    try:
        do_something(my_arg)
    except Exception, e if handle_exceptions:
        print "my_func is handling the exception"
Run Code Online (Sandbox Code Playgroud)

我知道我可以写一些符合我想要的kludgy代码,但如果有的话,我想要一个pythonic答案.
谢谢.

python exception-handling exception

16
推荐指数
4
解决办法
7310
查看次数

以编程方式关闭Android设备上的USB存储

在许多Android设备上,当设备插入计算机的USB端口或甚至某些USB充电设备时,手机将进入USB存储模式.当设备处于此模式时,Android应用程序无法访问SD卡.有没有办法(1)检测设备何时处于此模式,(2)以编程方式关闭USB存储,至少暂时,所以我的Android应用程序可以访问SD卡?

我已经看到其他SO问题并且答案还不够(例如,Android:检测USB).

java android usb-mass-storage

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

RabbitMQ中的celeryev队列变得非常大

我在rabbitmq上使用芹菜.我已经向队列发送了数千条消息,并且它们正在被成功处理,一切正常.但是,几个rabbitmq队列中的消息数量正在增长(队列中有数十万个项目).队列命名celeryev.[...](见下面的截图).这是恰当的行为吗?这些队列的目的是什么,不应该定期清除它们?有没有办法更频繁地清除它们,我认为它们占用了相当多的磁盘空间.

rabbitmq控件的截图

rabbitmq celery django-celery

15
推荐指数
4
解决办法
7335
查看次数

大多数Pythonic方法通过重复元素拆分数组

我有一个项目列表,我想根据分隔符进行拆分.我希望删除所有分隔符,并在分隔符出现两次时拆分列表.例如,如果分隔符是'X',则以下列表:

['a', 'b', 'X', 'X', 'c', 'd', 'X', 'X', 'f', 'X', 'g']
Run Code Online (Sandbox Code Playgroud)

会变成:

[['a', 'b'], ['c', 'd'], ['f', 'g']]
Run Code Online (Sandbox Code Playgroud)

请注意,最后一组未拆分.

我写了一些丑陋的代码来做到这一点,但我确信有更好的东西.如果您可以设置任意长度分隔符(即在看到N个分隔符后拆分列表),则需要额外的分数.

python

14
推荐指数
1
解决办法
1386
查看次数

Elasticsearch:何时将omit_norms选项设置为false

omit_normselasticsearch中选项的一个很好的用例是什么?我在es网站上找不到足够的解释.

lucene indexing core normalization elasticsearch

14
推荐指数
1
解决办法
7318
查看次数

Elasticsearch的个性化搜索结果

如何设置Elasticsearch以便返回个性化结果?

例如,我希望返回给特定用户的结果如果他们先前点击了一个结果,或者如果他们"过时"导致过去的结果,则排名更高.您还可以使用"隐藏"选项,将结果推向排名.从目前为止我在弹性搜索中看到的情况来看,似乎很难根据用户自己的动态数据向用户返回不同的排名.

该解决方案必须扩展到每天进行十几次搜索的数千名用户.理想情况下,我希望排名能够实时变化,但并不重要.

search personalization elasticsearch

13
推荐指数
1
解决办法
3211
查看次数