问题列表 - 第39475页

压缩和查找巨大的单词列表

我有一个巨大的多字节序列列表(让我们称之为单词)我需要存储在一个文件中,我需要能够快速查找.巨大意味着:大约200万个,每个长度为10-20个字节.

此外,每个单词都应具有与之关联的标记值,以便我可以使用它来为每个项目引用更多(外部)数据(因此,拼写检查器的字典在此处不起作用,因为它仅提供命中测试).

如果这只是在内存中,并且如果内存很多,我可以简单地将所有单词存储在散列映射(也就是字典,也就是键值对)中,或者存储在二进制搜索的排序列表中.

但是,我想高度压缩数据,并且还希望不必将数据读入内存,而是在文件内部进行搜索.

由于单词主要基于英语,因此单词中某些"sillables"出现的可能性比其他单词更高 - 这可能对高效算法有所帮助.

有人能指出我有效的技术或算法吗?

甚至代码示例?

更新

我认为DAWG或类似路径将这条路径路径化为常用后缀对我来说不起作用,因为那时我将无法使用单个值标记每个完整的单词路径.如果我要检测常见的后缀,我必须将它们放入自己的字典(查找表)中,以便trie节点可以引用它们,但节点将保留其自己的结束节点以存储该路径的标记值.

事实上,这可能是要走的路:

我不是仅为单个字符构建树节点,而是尝试找到常用的字符序列,并为这些字符序列创建一个节点.这样,单个节点可以覆盖多个字符,可能会导致更好的压缩.

现在,如果这是可行的,我将如何在我的所有短语中找到经常使用的子序列?大约有200万个短语通常由1-3个单词组成,所有可能的子串的所有排列都很难...

compression algorithm dictionary

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

更新或重新加载ExtJs ComboBox的存储

我想知道如何更新或重新加载ExtJs ComboBox的列表值的方法.例如,我有一些复选框.这些复选框确定ComboBox应具有的值.因此,在选择其中一些之后,我点击了drowndown列表(组合框)来查看值.

简而言之,我如何更改ComboBox已有的值(存储).

希望可以有人帮帮我

谢谢

extjs

14
推荐指数
3
解决办法
4万
查看次数

AVQueuePlayer的预缓冲

有没有人知道当前项目即将完成播放时是否AVQueuePlayer开始缓冲下一个AVPlayerItem

我知道文档中没有任何内容可以暗示这一点,我主要询问是否有人观察过这种行为.

iphone objective-c avfoundation avplayer

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

在Rails中不区分大小写的group_by?

好的,我有这个电话

location.requests.group_by(&:song)
Run Code Online (Sandbox Code Playgroud)

位置是

>> location = Location.find 4
=> #<Location id: 4, venue: "Rod Laver Arena at Melbourne Park - Melbourne Vic, ...", 
showdate: "2010-11-20", created_at: "2010-10-28 01:20:42", updated_at: 
"2010-10-28 01:20:42", band_id: nil, artist_name: "Metallica">


location.requests.group_by(&:song)
Run Code Online (Sandbox Code Playgroud)

这个调用返回两个记录"One"和"one",因为它们以这种方式保存在db中....任何想法如何重做group_by只返回一个记录

我正在使用sqlite

ruby mysql sqlite ruby-on-rails

4
推荐指数
1
解决办法
782
查看次数

在Xcode中,有没有办法对方法的下拉列表进行排序

在Xcode中,有一个首选项可以按字母顺序对"编辑器函数"弹出窗口进行排序,这很棒.但是,这并未考虑同样出现在此列表中的#pragma标记标题.将这个列表首先按字母顺序排序,然后按#pragma heading,然后按方法排序会很棒.这可能吗?也许用脚本?

xcode

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

"过滤器输入,转义输出"对PDO仍然有效

我在"过滤输入,转义输出"之前读过这个,但是当我在PHP上使用PDO时,真的需要过滤输入吗?我认为使用PDO我不需要过滤输入,因为准备好的语句负责sql注入.我认为"转义输出"仍然有效,但"过滤输入"仍然有效吗?

php security xss pdo sql-injection

10
推荐指数
1
解决办法
1525
查看次数

在两点之间划一条线

嗨,我有2分(X1,Y1),(X2,Y2)我怎么能在它们之间划一条线?谢谢

java drawing awt

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

如何在sql find/replace命令中使用引号,其中"是要替换的东西?

这是我试过的:

UPDATE `main` SET Practice = replace(Practice,""","");
Run Code Online (Sandbox Code Playgroud)

我在表格的主要部分中有杂散的引号,我正在尝试进行大规模执行.但是,我得到的只是语法错误消息.这种语法适用于其他类似的故意大屠杀,但不适用于此.

mysql sql replace

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

对于循环或循环 - 效率

这可能是一个愚蠢的问题,但是while循环的效率如何与for循环的效率相比较?我一直被教导如果你可以使用for循环,那么我应该.但实际上是什么区别:

$i = 0;
while($i < 100) {
     echo $i;
     $i++;
} 
Run Code Online (Sandbox Code Playgroud)

相比于:

for($i = 0; $i < 100; $i++) {
    echo $i;
}
Run Code Online (Sandbox Code Playgroud)

我知道在这些具体的例子中差异就像.000000001%,但是当我们谈论大型复杂循环时,有什么区别?

performance loops

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

怎么写django测试意味着失败?

我有一个名为Thingwith called 的模型name,我希望name为char字段,只有 3个字符长.

我该怎么写测试?

class TestCase1(TestCase):
    def test1(self):
        thing = Thing(name='1234')
Run Code Online (Sandbox Code Playgroud)

那个测试应该失败.如何正确编写测试以便在该对象失败时测试通过

testing django tdd

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