小编Dan*_*Dan的帖子

为SQLiteDatabase使用Singleton设计模式

我是Android上的新手,我正在开发一个简单的应用程序来获得一些基本的体验.我的应用程序非常简单,包括广播接收器和一些活动.这两个组件都使用单个数据库,因此从理论上讲,两者都可能同时尝试访问数据库.

目前我只是在每次需要时实例化db对象(它是一个SQLite数据库帮助程序类),并执行所需的操作:查询,插入等.

从我在这里和其他一些文档中读到的,这有一个问题是在同时访问db的情况下获得"db locked"异常,所以更好的方法是拥有这个db对象的单个实例所以所有组件始终使用相同的数据库连接.

以上推理是否正确?那么一个单身人士会成为一个足够好的解决方案吗?我知道一些纯粹主义者可能反对它,但请注意,这是一个相当简单的应用程序,所以我可以负担得起在其他情况下我不会做的事情.

否则,更好的选择是什么?我已经阅读过有关使用内容提供商的内容,但这对此来说太过分了,除此之外我对与其他活动共享数据不感兴趣.我确实读过这篇文章,发现它很有帮助.

java sqlite singleton android android-loadermanager

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

将字符串转换为位列表,反之亦然

我需要将ASCII字符串转换为位列表,反之亦然:

str = "Hi" -> [0,1,0,0,1,0,0,0,0,1,1,0,1,0,0,1]

[0,1,0,0,1,0,0,0,0,1,1,0,1,0,0,1] -> "Hi"
Run Code Online (Sandbox Code Playgroud)

python python-3.x

13
推荐指数
4
解决办法
5万
查看次数

在MongoDB Collection中查找与RegEx数组匹配

假设我有这些字段的集合:

{
    "category" : "ONE",
    "data": [
        {
            "regex": "/^[0-9]{2}$/",
            "type" : "TYPE1"
        },
        {
            "regex": "/^[a-z]{3}$/",
            "type" : "TYPE2"
        }
        // etc
    ]
}
Run Code Online (Sandbox Code Playgroud)

所以我的输入是"abc"所以我想获得相应的类型(或最佳匹配,尽管最初我假设RegExes是独占的).有没有可能通过良好的性能实现这一目标?(这将排除迭代RegEx数组的每个项目)

请注意,如果可能,可以重新安排架构,因为该项目仍处于设计阶段.所以替代方案将受到欢迎.

每个类别可以有大约100 - 150个RegExes.我打算有大约300个类别.但我知道这些类型是相互排斥的.

一个类别的真实世界示例:

type1=^34[0-9]{4}$, 
type2=^54[0-9]{4}$, 
type3=^39[0-9]{4}$, 
type4=^1[5-9]{2}$, 
type5=^2[4-9]{2,3}$
Run Code Online (Sandbox Code Playgroud)

regex performance mongodb aggregation-framework

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

使用排序规则对数组进行排序

我有一个包含法语单词的数组:['États-Unis','Espagne'等]我希望根据其语言环境按字母顺序排序(fr_FR)

我正在使用以下代码:

$collator = new Collator('fr-FR');
echo $collator->getErrorMessage();
$collator->asort($array);
Run Code Online (Sandbox Code Playgroud)

但我收到错误U_USING_DEFAULT_WARNING我假设使用英语或其他一些语言环境.更重要的是,阵列没有正确排序(美国出现在西班牙之前,我预计会发生相反的情况)

我安装了intl包,我的系统有相应的语言环境(Ubuntu)

$locale -a
C
C.UTF-8
en_US.utf8
es_ES.utf8
fr_FR
fr_FR.iso88591
fr_FR.utf8
POSIX
Run Code Online (Sandbox Code Playgroud)

我在构造Collat​​ion对象时尝试了不同的组合,没有任何好的结果:"fr-FR","fr-FR.UTF8"等.

还有什么我想念的吗?

php locale localization collation

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

合并切片列表

我有一个包含N个元素的列表,我使用某个步骤对其进行切片,让我们说3:

slice0 = text[0::3]
slice1 = text[1::3]
slice2 = text[2::3]
Run Code Online (Sandbox Code Playgroud)

在分开处理之后,现在我需要将它们合并回原始列表中的相同位置.是否有类似(简单)的方法来做到这一点?

例:

L = [1,2,3,4,5,6] -> L0 = [1,4], L1 = [2,5], L2 = [3,6]
Run Code Online (Sandbox Code Playgroud)

然后进行一些处理(比如将每个列表分别乘以1,2和3:

L0 = [1,4], L1 = [4,10], L2 = [9,18] 
Run Code Online (Sandbox Code Playgroud)

将它们合并回原来的位置

L = [1,4,9,4,10,18]
Run Code Online (Sandbox Code Playgroud)

谢谢.

python list

3
推荐指数
1
解决办法
1595
查看次数

怀疑有关推文的聚类方法

我对聚类和相关主题相当新,所以请原谅我的问题.

我试图通过做一些测试来介绍这个领域,作为第一个实验,我想根据内容相似性在推文上创建集群.实验的基本思想是将推文存储在数据库上并定期计算聚类(即使用cron作业).请注意,数据库会不时获得新的推文.

在这个领域无知,我的想法(可能是天真的)将是这样的事情:

1. For each new tweet in the db, extract N-grams (N=3 for example) into a set
2. Perform Jaccard similarity and compare with each of the existing clusters. If result > threshold then it would be assigned to that cluster
3. Once finished I'd get M clusters containing similar tweets
Run Code Online (Sandbox Code Playgroud)

现在我看到这个基本方法存在一些问题.让我们抛开计算成本,如何在推文和集群之间进行比较?假设我有一条推文Tn和一个包含T1,T4,T10的集群C1,我应该将它与之比较?鉴于我们正在讨论相似性,很可能会发生sim(Tn,T1)>阈值但sim(Tn,T4)<阈值.我的直觉告诉我,为了避免这个问题,应该为集群使用类似平均值的东西.

此外,可能发生sim(Tn,C1)和sim(Tn,C2)都是>阈值但与C1的相似性会更高.在那种情况下,Tn应该转到C1.这也可以做蛮力,以便将推文分配给具有最大相似性的群集.

最后,这是计算问题.我一直在阅读有关minhash的一些内容,它似乎是这个问题的答案,尽管我需要对它进行更多的研究.

无论如何,我的主要问题是:在该地区有经验的人是否可以向我推荐我应该采用哪种方法?我读过一些关于LSA和其他方法的提及,但是试图应对一切都变得有点压倒性,所以我很欣赏一些指导.

从我正在阅读的工具来看,这将是层次聚类,因为它允许在新数据进入时重新组合聚类.它是否正确?

请注意,我不是在寻找任何复杂的案例.我的用例理念是能够在没有任何先前信息的情况下将类似的推文聚类成组.例如,来自Foursquare的推文("我正在检查......"彼此相似的推文将是一个案例,或者"我的klout得分是......").另请注意,我希望这与语言无关,所以我对处理特定语言问题不感兴趣.

cluster-analysis hierarchical-clustering data-mining

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