标签: pattern-matching

PostgreSQL全文搜索和Trigram混淆

我对PostgreSQL的全部概念,全文搜索和Trigram有点困惑.在我的全文搜索查询中,我正在使用tsvectors,如下所示:

SELECT * FROM articles
WHERE search_vector @@ plainto_tsquery('english', 'cat, bat, rat');
Run Code Online (Sandbox Code Playgroud)

问题是,这种方法不能解释拼写错误.然后我开始阅读关于 Trigram和pg_trgm:

通过其他示例,似乎使用了trigram或使用了向量,但从未使用过.所以我的问题是:他们一起使用过吗?如果是这样,怎么样?trigram会替换全文吗?三卦更准确吗?三卦如何表现?

postgresql full-text-search pattern-matching

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

Haskell中的模式匹配字符串前缀

假设我想为一个匹配以字符'Z'开头的字符串的函数创建一个特例.通过执行以下操作,我可以使用模式匹配轻松完成:

myfunc ('Z' : restOfString) = -- do something special
myfunc s = -- do the default case here
Run Code Online (Sandbox Code Playgroud)

但是如果我想匹配具有更长前缀的字符串呢?假设我想要一个以"烤面包机"开头的字符串的特殊情况.编写匹配此类字符串的模式的最佳方法是什么?

haskell pattern-matching

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

如何在java中的String中查找整个单词

我有一个字符串,我必须解析不同的关键字.例如,我有字符串:

"我会在123woods来见你"

我的关键字是

'123woods''森林'

我应该在每次有比赛时报告.还应考虑多次出现.然而,对于这个,我应该只在123woods匹配,而不是在树林.这消除了使用String.contains()方法.此外,我应该能够有一个列表/一组关键字,并同时检查它们的发生.在这个例子中,如果我有'123woods'和'come',我应该两次出现.方法执行在大文本上应该有点快.

我的想法是使用StringTokenizer,但我不确定它是否会表现良好.有什么建议?

java string pattern-matching stringtokenizer

25
推荐指数
5
解决办法
19万
查看次数

闭序和开序列模式挖掘算法的区别

我想使用一些算法来挖掘我的日志数据.

我找到了一个模式挖掘框架:http://www.philippe-fournier-viger.com/spmf/index.php?link = _algorithms.php

我尝试了几种算法,BIDE +算法表现最佳.

BIDE +算法用于从序列数据库中挖掘频繁闭合的序列模式.

有人可以解释关于"封闭"序列模式和开放模式的定义吗?

data-mining pattern-matching apriori sequential

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

是什么导致"无可辩驳的模式因模式而失败",这是什么意思?

是什么

无可辩驳的模式因模式而失败

意思?什么情况会导致此运行时错误?

haskell runtime-error pattern-matching

24
推荐指数
3
解决办法
9308
查看次数

Groovy/Java在括号上拆分字符串"("

我正在尝试执行类似以下的拆分:

println "Hello World(1)".split("W");
Run Code Online (Sandbox Code Playgroud)

输出:

[Hello , orld(1)]
Run Code Online (Sandbox Code Playgroud)

我想执行这个分裂:

println "Hello World(1)".split("(");
Run Code Online (Sandbox Code Playgroud)

但我明白了:

Caught: java.util.regex.PatternSyntaxException: Unclosed group near index 1 (
Run Code Online (Sandbox Code Playgroud)

有没有办法逃脱这个括号?任何帮助表示赞赏.

java groovy escaping pattern-matching

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

为什么表达式在Haskell中不受欢迎?

这是一个我一直想知道的问题.如果语句是大多数编程语言中的主要语言(至少是我曾经使用过的语句),但在Haskell中,它似乎很不受欢迎.我理解,对于复杂情况,Haskell的模式匹配比一堆ifs更清晰,但是有什么真正的区别吗?

举一个简单的例子,拿一个自制版本的总和(是的,我知道它可能只是foldr (+) 0):

sum :: [Int] -> Int
-- separate all the cases out
sum [] = 0
sum (x:xs) = x + sum xs

-- guards
sum xs
    | null xs = 0
    | otherwise = (head xs) + sum (tail xs)

-- case
sum xs = case xs of
    [] -> 0
    _ -> (head xs) + sum (tail xs)

-- if statement
sum xs = if null xs then 0 else (head xs) + …
Run Code Online (Sandbox Code Playgroud)

haskell pattern-matching

24
推荐指数
6
解决办法
3567
查看次数

"案例"匿名函数如何在Scala中真正起作用?

Dast Scala,

scala> val f1: ((Int, Int)) => Int = { case (a, b) => a + b }
f1: ((Int, Int)) => Int = <function1>

scala> val f2: (Int, Int) => Int = { case (a, b) => a + b }
f2: (Int, Int) => Int = <function2>
Run Code Online (Sandbox Code Playgroud)

呵呵?

scala> f1(1, 2)
res2: Int = 3
Run Code Online (Sandbox Code Playgroud)

好...

scala> def takesIntInt2Int(fun: (Int, Int) => Int) = fun(100, 200)
takesIntInt2Int: (fun: (Int, Int) => Int)Int

scala> def takesTuple2Int(fun: ((Int, Int)) …
Run Code Online (Sandbox Code Playgroud)

scala pattern-matching

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

结构化绑定是否与std :: vector一起使用?

是否可以使用带向量的结构化绑定?

例如

std::vector<int> vec{1, 2, 3};
auto [a, b, c] = vec;
Run Code Online (Sandbox Code Playgroud)

不幸的是,上面的代码不起作用(在GCC下),但也许有一种不同的方式(结构化绑定)允许将向量的前三个值分配给三个变量.

c++ vector pattern-matching c++17 structured-bindings

24
推荐指数
3
解决办法
2190
查看次数

功能上的非详尽模式

我有这个代码的问题,它应该计算字符串中相同字母的最长子字符串,但是有一个错误:

*** Exception: test.hs:(15,0)-(21,17): 
Non-exhaustive patterns in function countLongest'
Run Code Online (Sandbox Code Playgroud)

我知道这是错误的类型问题,但我不知道错误在哪里,或者如何查找或调试它

countLongest :: (Eq a) => [a] -> Int
countLongest' :: (Eq a) => Int -> Int -> [a] -> Int

countLongest a = countLongest' 0 0 a
countLongest' n max (y:x:ys)
        | y == x = countLongest' (n+1) max (x:ys)
        | n > max = countLongest' 0 (n) (x:ys)
        | otherwise = countLongest' 0 (max) (x:ys)
countLongest' n max []
        | n > max = n
        | otherwise = max
Run Code Online (Sandbox Code Playgroud)

haskell pattern-matching non-exhaustive-patterns

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