小编Mag*_*gie的帖子

在JavaScript中将'1'转换为'0001'

可能重复:
是否有一个JavaScript函数可以填充字符串以达到确定的长度?

如何在JavaScript中将转换'1'转换为'0001'而不使用任何第三方库.我使用spritf在php中完成了这个:$time = sprintf('%04.0f',$time_arr[$i]);

javascript

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

Python中的模糊字符串比较,与使用哪个库相混淆

我想做模糊字符串比较,但与使用哪个库混淆.

选项1:

import Levenshtein
Levenshtein.ratio('hello world', 'hello')

Result: 0.625
Run Code Online (Sandbox Code Playgroud)

选项2:

import difflib
difflib.SequenceMatcher(None, 'hello world', 'hello').ratio()

Result: 0.625
Run Code Online (Sandbox Code Playgroud)

在这个例子中,两者给出了相同的答案.但我更喜欢使用__CODE__.专家的任何建议.谢谢.

__CODE__

我正在进行临床信息规范化(拼写检查),其中我检查每个给定的单词对900,000字的医学词典.我更关注时间复杂度/性能.

在这种情况下,你认为两者都表现相似吗?

python string-matching difflib levenshtein-distance

119
推荐指数
2
解决办法
6万
查看次数

关于Android中自定义权限的几个问题

我正在学习Android编程,我有点理解自定义权限的概念.

根据我的理解,这是自定义权限的工作原理:

'Base app'通过声明自定义权限(即,使用<permission>清单文件中的标记)来保护其某些组件(例如,活动和服务),并且'client app'调用受自定义权限保护的活动和服务需要获取必要的权限(即,使用<uses-permission>标签)清单文件)来调用那些组件base app.

但是,我有关于自定义权限的这些问题:

  1. 如果自定义权限被声明为危险(即android:protectionLevel="dangerous"),是否client app需要在安装期间获得用户的批准?如果是这样,用户如何知道这些自定义权限,因为没有任何自定义权限的文档.
  2. 在安装期间,如何client app知道base app已经安装在用户的手机中?无论如何client app要知道这些信息吗?
  3. 一旦client app安装,如果用户决定删除base app?会发生什么?在这种情况下,如果用户尝试使用client app它会导致任何安全性异常吗?

我不知道这些问题是否有意义,但它让我想知道自定义权限在实际场景中是如何实际工作的.

谢谢.

security android android-intent android-activity android-permissions

19
推荐指数
1
解决办法
2613
查看次数

将几个正则表达式合并为一个RE

我写了2个RE来匹配String中的几个字符串序列.例如,假设两个正则表达式是RE1,RE2.字符串可以是这4种形式;

1) Match ONLY RE1 'one or more times'
2) Match ONLY RE2 'one or more times'
3) Match RE1 'one or more times' AND match RE2 'one or more times'
4) Match NEITHER RE1 NOR RE2 

目前我正在使用它if来检查每一个,但我知道它非常昂贵,因为我正在多次匹配特定的字符串.我想过使用'或',|但问题是regex会在找到第一个匹配序列后停止匹配,而不是继续查找其他序列.我想找到匹配序列'一次或多次'.

更新:

eg: RE1 = (\d{1,3}[a-zA-Z]?/\d{1,3}[a-zA-Z]?)
    RE2 = (\babc\b)
String: *some string* 100/64h *some string* 120h/90 *some string* abc 200/100 abc *some string* 100h/100f

Matches: '100/64h', '120h/90', 'abc', '200/100', 'abc', '100h/100f'

如何合并这两个RE以使我的程序高效.我正在使用python来编写代码.

python regex

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

什么是功能散列(散列技巧)?

我知道特征散列(散列技巧)用于减少维度并处理位向量的稀疏性,但我不明白它是如何工作的.任何人都可以向我解释这个.是否有任何python库可以进行功能散列?

谢谢.

python hash vector machine-learning

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

重用Amazon Elastic MapReduce实例

我尝试过使用简单的Map/Reduce任务Amazon Elastic MapReduce,只需3分钟即可完成任务.是否可以重用同一个实例来运行另一个任务.

即使我刚刚使用该实例3分钟亚马逊将收取费用1 hr,所以我想使用余额57分钟来运行其他几项任务.

mapreduce amazon-ec2 elastic-map-reduce

11
推荐指数
1
解决办法
2816
查看次数

在NLTK中选择哪种分类器

我想将短信分为几类,如"建立关系","协调","信息共享","知识共享"和"冲突解决".我正在使用NLTK库来处理这些数据.我想知道在nltk中哪个分类器对于这个特定的多类分类问题更好.

我打算使用朴素贝叶斯分类,是否可取?

nlp classification nltk

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

Python中的多处理池 - 仅使用单个CPU

原始问题

我试图在Python中使用多处理池.这是我的代码:

def f(x):
    return x

def foo():
    p = multiprocessing.Pool()
    mapper = p.imap_unordered

    for x in xrange(1, 11):
        res = list(mapper(f,bar(x)))
Run Code Online (Sandbox Code Playgroud)

当代码xrange很小时,这段代码使用所有CPU(我有8个CPU)xrange(1, 6).但是,当我将范围增加到xrange(1, 10).我观察到只有1个CPU以100%运行,而其余的只是空转.可能是什么原因?是因为,当我增加范围时,操作系统会因过热而关闭CPU吗?

我该如何解决这个问题?

最小,完整,可验证的例子

为了复制我的问题,我创建了这个例子:它是一个来自字符串问题的简单ngram生成.

#!/usr/bin/python

import time
import itertools
import threading
import multiprocessing
import random


def f(x):
    return x

def ngrams(input_tmp, n):
    input = input_tmp.split()

    if n > len(input):
        n = len(input)

    output = []
    for i in range(len(input)-n+1):
        output.append(input[i:i+n])
    return output 

def foo():

    p = multiprocessing.Pool()
    mapper = p.imap_unordered …
Run Code Online (Sandbox Code Playgroud)

python pool multiprocessing

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

从Python中的'enchant suggest()'获取最相关的单词(拼写检查)

我想从中得到最相关的词enchant suggest().有没有更好的方法来做到这一点.在检查100k或更大范围内的大量单词时,我觉得我的功能效率不高.

问题enchant suggest():

>>> import enchant
>>> d.suggest("prfomnc")
['prominence', 'performance', 'preform', 'Provence', 'preferment', 'proforma']

我的功能是从一组建议的单词中获取适当的单词:

import enchant, difflib

word="prfomnc"
dict,max = {},0
a = set(d.suggest(word))
for b in a:
    tmp = difflib.SequenceMatcher(None, word, b).ratio();
    dict[tmp] = b
    if tmp > max:
       max = tmp

print dict[max]

Result: performance

更新:

如果我得到多个键,意思是相同的difflib ratio() 值,我使用多键字典.如下所述:http://code.activestate.com/recipes/440502-a-dictionary-with-multiple-values-for-each-key/

python spell-checking

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

欧几里德距离与权重

我目前正在使用SciPy计算欧氏距离

dis = scipy.spatial.distance.euclidean(A,B)
Run Code Online (Sandbox Code Playgroud)

哪里; A,B是5维位向量.它现在工作正常,但如果我为每个维度添加权重,那么仍然可以使用scipy吗?

我现在拥有的: sqrt((a1-b1)^2 + (a2-b2)^2 +...+ (a5-b5)^2)

我想要的:sqrt(w1(a1-b1)^2 + w2(a2-b2)^2 +...+ w5(a5-b5)^2)使用scipy或numpy或任何其他有效的方法来做到这一点.

谢谢

python numpy scipy euclidean-distance

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