gpt4 book ai didi

language-agnostic - 解析和格式化搜索结果

转载 作者:行者123 更新时间:2023-12-02 05:15:37 25 4
gpt4 key购买 nike

Search:

Scripting+Language Web+Pages Applications

Results:

...scripting language originally...producing dynamic web pages. It has...graphical applications....purpose scripting language that is...d creating web pages as output...

假设我想要一个值表示允许在匹配项的任一侧填充的字符数,另一个值表示结果中将显示多少匹配项(即,我只想看到第一个5 场比赛,仅此而已)。

究竟会怎么做?

这与语言无关,但我将在 PHP 环境中实现解决方案,因此请限制对不需要特定语言或框架的选项的回答。

这是我的思考过程:根据搜索词创建一个数组。确定哪个搜索词在文章正文中的位置具有最低索引。将正文的那部分收集到另一个变量中,然后从文章正文中删除该部分。返回步骤 1。您甚至可以为每个单词添加一个计数器,当计数器达到 3 左右时跳过它。

重要:

解决方案必须以非线性方式匹配所有搜索词。意思是,如果第一学期在第二学期之后存在,则应该在第二学期之后找到。同样,它也应该在第 3 学期之后找到。第 3 项应该在第 1 项和第 2 项之前找到,如果它恰好存在于它们之前。

解决方案应该允许我声明“每个术语最多只允许三个匹配项,然后终止摘要。”

额外学分:

获取填充变量以选择性地填充单词,而不是字符。

最佳答案

我的思考过程:

  1. 创建一个支持非唯一名称/值对的结果数组(PHP 在其标准 array 对象中支持这一点)
  2. 遍历每个搜索词并找到其字符在搜索文本中的起始位置
  3. 在结果数组中添加一个项目,存储它刚刚找到的以实际搜索词为键的字符位置
  4. 找到所有搜索词后,按值(搜索词的字符位置)对数组进行升序排序
  5. 现在,搜索结果将按照在搜索文本中找到的顺序排列
  6. 遍历结果数组并使用指定的单词填充来获取搜索词每一侧的单词,同时在单独的名称/值对中跟踪单词计数

伪代码,或者我最好的尝试:

function string GetSearchExcerpt(searchText, searchTerms, wordPadding = 0, searchLimit = 3)
{
results = new array()
startIndex = 0
foreach (searchTerm in searchTerms)
{
charIndex = searchText.FindByIndex(searchTerms, startIndex) // finds 1st position of searchTerm starting at startIndex
results.Add(searchTerm, charIndex)
startIndex = charIndex + 1
}
results = results.SortByValue()
lastSearchTerm = ""
searchTermCount = new array()
outputText = ""
foreach (searchTerm => charIndex in results)
{
searchTermCount[searchTerm]++
if (searchTermCount[searchTerm] <= searchLimit)
{
// WordPadding is a simple function that moves left or right a given number of words starting at a specified character index and returns those words
outputText += "..." + WordPadding(-wordPadding, charIndex) + "<strong>" + searchTerm + "</strong>" + WordPadding(wordPadding, charIndex)
}
}

return outputText
}

关于language-agnostic - 解析和格式化搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/592581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com