我正在使用一些Java代码来执行快速前缀查找,使用java.util.TreeSet,我可以使用scala的TreeSet吗?还是另一种解决方案?
/** A class that uses a TreeSet to do fast prefix matching
*/
class PrefixMatcher {
private val _set = new java.util.TreeSet[String]
def add(s: String) = _set.add(s)
def findMatches(prefix: String): List[String] = {
val matches = new ListBuffer[String]
val tailSet = _set.tailSet(prefix)
for ( tail <- tailSet.toArray ) {
val tailString = tail.asInstanceOf[String]
if ( tailString.startsWith(prefix) )
matches += tailString
else
return matches.toList
}
matches.toList
}
}
Run Code Online (Sandbox Code Playgroud) 我想知道Apache Lucene使用的字符串匹配算法.我一直在经历着由下式给出的Lucene使用的索引文件格式在这里.似乎lucene存储文本中出现的所有单词,以及每个文档中出现的频率.但据我所知,对于有效的字符串匹配,它需要预处理文档中出现的单词.
示例:搜索"iamrohitbanga是stackoverflow的用户"(使用模糊匹配)
在一些文件中.
有可能是一个包含字符串"rohit banga"的文档
为了找到子字符串rohit和banga存在于搜索字符串中,它将使用一些有效的子字符串匹配.
我想知道它是哪种算法.如果它做了一些预处理,java api中的函数调用会触发它.
有人可以告诉我,如何只搜索字典中的一部分键(在VB.NET中)?
我使用以下示例代码:
Dim PriceList As New Dictionary(Of String, Double)(System.StringComparer.OrdinalIgnoreCase)
PriceList.Add("Spaghetti alla carbonara", 21.65)
PriceList.Add("Spaghetti aglio e olio", 22.65)
PriceList.Add("Spaghetti alla napoletana", 23.65)
PriceList.Add("Spaghetti alla puttanesca ", 24.65)
PriceList.Add("Spaghetti alla gricia ", 25.65)
PriceList.Add("Spaghetti alle vongole", 26.65)
PriceList.Add("Spaghetti Bolognese", 27.65)
If PriceList.ContainsKey("spaghetti bolognese") Then
Dim price As Double = PriceList.Item("spaghetti bolognese")
Console.WriteLine("Found, price: " & price)
End If
If Not PriceList.ContainsKey("Bolognese") Then
Console.WriteLine("How can I search for only a part of a key?")
End If
Run Code Online (Sandbox Code Playgroud)
如果我只知道像"Bolognese"这样的关键部分,或者只是像"Bolo"这样的单词的一部分,那么如何在完整的密钥中搜索这部分?
给定一组字符串,比如说"String1", "String2",..., "StringN",C++中确定(返回true或false)是否string s与上述集合中的任何字符串匹配的最有效方法是什么?
可以将Boost.Regex用于此任务吗?
我同时拥有“ 5.1参考手册”和“在Lua中编程:第三版”。在我前面。阅读这些内容以及网络上的大量搜索内容,在使用string.match和时仍然让我有些困惑string.gmatch。
我知道它们都用于定位模式。
这是他们在“参考手册”中用于string.gmatch的示例:
s = "hello world from Lua"
for w in string.gmatch (s, "%a+") do
print(w)
end
Run Code Online (Sandbox Code Playgroud)
我知道这将遍历所有单词s并每行打印一个单词。
这是他们在“ Lua编程”一书中使用的示例string.match:
date = "Today is 17/7/1990"
d = string.match(date, "%d+/%d+/%d+")
print(d) -- prints 17/7/1990
Run Code Online (Sandbox Code Playgroud)
我感到困惑的是,什么时候应该适当使用一个?
例如,您有要解析的代码,其中包含数十遍相同的模式。此模式包含您需要的变量,哪个是更好的选择?下面的示例代码(x都是与其他行不同的变量数据。数据可以是您不需要关心的任何垃圾,而仅仅是杂讯):
Header contains variable (HERE) and (HERE) I want.
data data data data data data data data
<Font Typeset:xxxx Font Color:xxx Font Xpos:xxx Font Ypos:xxx Font Bold:X Font Uline:X Font Italic:X Font Text:XXXXXXXXX>
data data data …Run Code Online (Sandbox Code Playgroud) 我在Oracle中有一个包含四列的表。

现在,用户可以向我的查询输入输入字符串作为“向右膝盖操作”(有效),并且我的查询应返回与DiagnosisName列中的大多数单词匹配的ICD代码(IKR123)。
以下是我当前的查询。(未提供正确的输出)
SELECT diagnosisname
FROM
(SELECT diagnosisname,
UTL_MATCH.jaro_winkler_similarity('%operation Knee right%',diagnosisname)
FROM icd_code
ORDER BY UTL_MATCH.EDIT_DISTANCE_SIMILARITY('%operation Knee right%',diagnosisname) DESC
)
WHERE ROWNUM<2;
Run Code Online (Sandbox Code Playgroud)
该查询给我的输出为“左膝盖操作”,但我的期望是“右膝盖操作”。
我目前正在开展数据建模项目,作为我大学夏季项目的一部分.客户数据需要大量清理,因为许多列依赖于人工输入并具有自由文本.
举一个例子,商业名称列有同一公司的多个条目.对于"Hugo Boss",这包括"Hugo Bos","Huggo Boss","Hugo Boss Ltd".
我可能会遍历每一行并识别所有已使用的值并为每个条目创建一个映射,但考虑到我处理的是100万条记录,这非常耗时且不太理想.
人们知道这种/类似实现的源代码吗?我研究了匹配算法,但是它们依赖于预先计算的模式.我可以使用哪些其他匹配算法或机器学习技术来开发一个自动化过程来清理数据,即将所有不同的名称匹配到一个名称.
任何帮助,将不胜感激.
我有相对较大的Excel电子表格,我在那里应用条件格式.但是,单元格的内容相对较短(最多3个字母).所以,我需要完全匹配一个字符串.例如:'A'应格式化,但不能再包含'A'('ABC','BCA','BAC'等).
我使用'text'和'cell'选项尝试了不同的选项,但我失败了.这是我的测试用例:
import xlsxwriter
workbook = xlsxwriter.Workbook('conditional_format4.xlsx')
worksheet1 = workbook.add_worksheet()
format1 = workbook.add_format({'bg_color': '#FFC7CE',
'font_color': '#9C0006'})
data = [
['ABC', 'BCA', 38, 30, 75, 48, 75, 66, 84, 86],
[6, 24, 1, 84, 54, 62, 60, 3, 26, 59],
[28, 79, 97, 13, 85, 93, 93, 22, 5, 14],
[27, 'BAC', 40, 17, 18, 79, 90, 93, 29, 47],
[88, 'ABC', 33, 23, 67, 1, 59, 79, 47, 36],
[24, 'A', 20, 88, 29, 33, 38, 54, 54, 88],
[6, …Run Code Online (Sandbox Code Playgroud) python excel conditional-formatting string-matching xlsxwriter
不确定如何检查单词是否作为字符串中的整个单词出现,而不是单词的一部分,区分大小写.例如:
Play 是字符串
Info Playlist Play pause
Run Code Online (Sandbox Code Playgroud)
但不在字符串中
Info Playlist pause
Info NowPlay pause
Run Code Online (Sandbox Code Playgroud) 在Javascript中找到任何两个字符串中第一个差异的位置的最简洁方法是什么?
var a = 'in the';
var b = 'in he';
findFirstDiffPos(a, b); // 3
var c = 'in the beginning';
findFirstDiffPos(a, c); // 6
Run Code Online (Sandbox Code Playgroud) string-matching ×10
string ×3
algorithm ×2
lua ×2
c++ ×1
dictionary ×1
excel ×1
java ×1
javascript ×1
lua-patterns ×1
lucene ×1
oracle ×1
python ×1
regex ×1
scala ×1
sql ×1
trie ×1
utl-match ×1
vb.net ×1
xlsxwriter ×1