标签: prefix

按前缀搜索多个单词(trie数据结构)

如何使用 trie(或其他数据结构或算法)通过前缀有效搜索多个单词?

例如:假设这是我的数据集:

  • 艾丽丝·琼斯
  • 鲍勃·史密斯
  • 鲍比·沃克
  • 约翰·多伊
  • (共10000个名字)

trie 数据结构允许我有效地检索以“ Bo ”开头的所有名称(因此无需迭代所有名称)。但我还想按前缀搜索姓氏,因此搜索“ Wa ”应该找到“Bobby Walker”。让事情变得复杂的是:当用户搜索“ Bo Wa ”时,也应该找到相同的名字。我怎样才能实现这个?我应该为名称的每个部分使用单独的 trie 结构吗?(以及如何合并结果)?

背景:我正在为大型地址簿(10000 多个名称)编写搜索功能。我想要一个非常快速的自动完成功能,可以在人们输入名字和姓氏的前几个字母时显示结果。我已经有一个使用正则表达式的解决方案,但它需要迭代所有名称,这会很慢。

algorithm tree search prefix trie

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

SPARQL 查询可以导入或重用一组 PREFIX 定义(命名空间绑定)吗?

我通过在 Jupyter 笔记本(基于 Web 的 REPL 环境)中执行 SPARQL 查询来记录对 RDF 数据的探索。

我经常通过复制先前的查询进行调整来创建查询。笔记本中充满了 SPARQL 查询,这些查询均以相同的八个 PREFIX 定义(例如PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>)开头。

为了减少混乱,我保持前缀列表较短,但这意味着我必须经常切换窗口来搜索必须添加的其他一些前缀(例如,PREFIX eurovoc: ...)。

有没有办法将 PREFIX 定义保存在文件中,然后只需将这些定义导入到查询中?

另外,由于我目前使用 Apache JENA 命令行实用程序在 Jupyter Notebook 中执行查询arq,因此我很高兴有任何允许将 SPARQL 查询拆分为多个文件的命令行实用程序或其他此类解决方法。

我在网上搜索了这个问题的答案stackoverflow.com,尝试了许多涉及 SPARQL、PREFIX、声明、定义、冗余、导入、重用、重用、命名空间、绑定、单独、文件和多重等词的查询,其中我在这里复制是为了让可能问同样问题的其他人更容易找到这个问题。

namespaces sparql prefix

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

extglob 如何与 shell 参数扩展一起使用?

我想我理解了可选的使用 ?(pattern-list)bashextglobshell 选项打开时)和默认情况下的使用ksh。例如在bash

$ shopt -s extglob
$ V=35xAB
$ echo "${V#?(35|88)x}" "${V#35}"
AB xAB
Run Code Online (Sandbox Code Playgroud)

但是,当匹配的前缀模式只有 one?()或 one时*()(这引入了我所说的可选模式)35除非使用,否则不会被省略##

$ echo "${V#?(35|88)}" "${V#*(35|88)}"    # Why 35 is not left out?
35xA 35xA
$ echo "${V##?(35|88)}" "${V##*(35|88)}"  # Why is it omitted when ## is used?
xA xA
Run Code Online (Sandbox Code Playgroud)

?()当和*()用于匹配后缀模式时(使用%和) ,会报告相同的行为%%

$ echo …
Run Code Online (Sandbox Code Playgroud)

bash ksh pattern-matching prefix suffix

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

添加带有前缀但不带命名空间的开始元素

有没有办法在 XmlWriter 中使用 WriteStartElement 函数,如下所示:

XmlWriter.WriteStartElement("prefix", "name", null);
Run Code Online (Sandbox Code Playgroud)

发生错误:System.ArgumentException:“无法使用带有空命名空间的前缀。”

我不想在创建元素时设置命名空间 URI。
稍后,当创建其他属性时,我将通过 WriteAttributeString() 添加它。

c# xml xmlwriter prefix xml-namespaces

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

使用前缀显示 rdflib 图中的实体

我正在使用 rdflib 将 RDF 图加载到 Python 脚本中 我想使用定义的前缀打印主题列表 我没有找到任何应​​用前缀的方法。我的代码

import rdflib
filepath = "... my file path ..."
gs = rdflib.Graph()
gs.bind('qs', "http://qs.org/")
gs.bind('foaf',"http://xmlns.com/foaf/0.1/")
gs.parse(filepath,format="nt")
mdstr = ""
for subject in gs.subjects():
    mdstr += str(subject) +"\n"
print(mdstr)
Run Code Online (Sandbox Code Playgroud)

例如,我得到 http://qs.org/s12095 代替 qs:s12095

python prefix rdflib

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

即使将--prefix传递给configure,也会使安装权限被拒绝

我正在尝试安装gcc(gcc的一个分支,而不是svn中的trunk),我配置它:

./configure --prefix=/home/user/myroot/ --enable-languages=c,c++ \
    --disable-multilib --libexecdir=/usr/lib --without-included-gettext \
    --enable-threads=posix --disable-werror --with-arch-32=i486 \
    --with-tune=generic --enable-checking=release --build=i486-linux-gnu \
    --host=i486-linux-gnu --target=i486-linux-gnu
Run Code Online (Sandbox Code Playgroud)

/ home/user/myroot是一个存在的目录.

当我运行make时,它会构建gcc.

但是,当我进行安装时,这就是我得到的:

make[1]: Entering directory `/home/user/gcc/gcc-cjung'
/bin/bash ./mkinstalldirs /home/user/myroot /home/user/myroot
make[2]: Entering directory `/home/user/gcc/gcc-cjung/host-i486-linux-gnu/fixincludes'
rm -rf /usr/lib/gcc/i486-linux-gnu/4.5.0/install-tools
/bin/bash ../.././fixincludes/../mkinstalldirs /usr/lib/gcc/i486-linux-gnu/4.5.0/install-tools
mkdir -p -- /usr/lib/gcc/i486-linux-gnu/4.5.0/install-tools
mkdir: cannot create directory `/usr/lib/gcc/i486-linux-gnu/4.5.0': Permission denied
make[2]: *** [install] Error 1
make[2]: Leaving directory `/home/user/gcc/gcc-cjung/host-i486-linux-gnu/fixincludes'
make[1]: *** [install-fixincludes] Error 2
make[1]: Leaving directory `/home/user/gcc/gcc-cjung'
make: *** [install] Error 2
Run Code Online (Sandbox Code Playgroud)

当我将前缀指定为/ home/user/myroot时,为什么还要将内容复制到/ usr/lib?

顺便说一下,如果重要的话,我正在使用Ubuntu 9.10.我已经安装了build-essential,gawk,flex,bison和libmpfr.

gcc install makefile prefix permission-denied

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

什么时候在字符串之前使用@更好?

在声明或使用a的代码中string,我通常会看到开发人员声明它是这样的:

string randomString = @"C:\Random\RandomFolder\ThisFile.xml";
Run Code Online (Sandbox Code Playgroud)

代替:

string randomString = "C:\\Random\\RandomFolder\\ThisFile.xml";
Run Code Online (Sandbox Code Playgroud)

这是我看到的唯一一个更好的使用@前缀的东西,因为你不需要做\\,但是当它比没有它更好的时候还有其他用途吗?

c# string syntax coding-style prefix

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

WordPress delete_option(); 通配符功能?

如何删除以特定前缀开头的WordPress数据库中的所有选项名称?

我假设我们需要指定一个前缀,获取以该前缀开头的所有选项,然后删除找到的每个选项.

以下是用于获取和删除数据库中的选项的前缀和WP函数的示例.

<?php
$prefix = 'cpt_';
$getOpt = get_option($prefix);
foreach($getOpt as $toDelete){
    $deleteOpt = delete_option($prefix);
    if(!$deleteOpt){
        echo 'Failure.';
    }
    if($deleteOpt){
        echo 'Success.';
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

资源:

php wordpress wildcard prefix

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

Easy_install的--prefix选项不会更改它尝试安装我的包的位置

我想为python 2.6安装Sphinx 1.1.3.但是,我没有sudo权利.因此,我不想在默认位置安装它,而是使用--prefix设置不同的位置.执行以下操作:

-bash-3.2$ easy_install Sphinx-1.1.3-py2.6.egg --prefix=/homes/ndeklein/python2.6/site-packages/
Run Code Online (Sandbox Code Playgroud)

给我:

error: can't create or remove files in install directory

The following error occurred while trying to add or remove files in the
installation directory:

[Errno 13] Permission denied: '/usr/lib/python2.4/site-packages/test-easy-install-18534.write-test'

The installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:

/usr/lib/python2.4/site-packages/
Run Code Online (Sandbox Code Playgroud)

我输入错误的前缀吗?另外,我可以使用它(我已经与其他包一起使用):

python setup.py install --home=/homes/ndeklein/python2.6/site-packages/
Run Code Online (Sandbox Code Playgroud)

但我找不到setup.py脚本.我猜这个EGG没有setup.py脚本,是真的吗?

python egg prefix easy-install

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

CMAKE_FIND_LIBRARY_PREFIXES/CMAKE_FIND_LIBRARY_SUFFIXES的默认值

我想我错过了一些非常明显的东西,但在我看来,cmake变量CMAKE_FIND_LIBRARY_PREFIXES/CMAKE_FIND_LIBRARY_SUFFIXES没有设置为任何"体面"的默认值,具体取决于当前的系统/设置!我已经检查了cmake docs和谷歌,但它似乎没有任何关于它.

例如,find_package(OpenSSL REQUIRED)除非你在主文件中设置变量或直接调用cmake -DCMAKE_FIND_LIBRARY_PREFIXES=lib -DCMAKE_FIND_LIBRARY_SUFFIXES=.so ..(在ubuntu w openssl/libssl-dev上安装),否则基本上调用的简单CMakeLists.txt 将会中断,目标的默认值PREFIX/SUFFIX被初始化"正确"为每个平台,甚至考虑BUILD_SHARED_LIBS等为什么不为find_library?

有谁知道为什么/建议(用户)行为应该是什么?

platform cmake prefix defaults

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