gpt4 book ai didi

算法:通过数据库从字符串中提取关键字

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:00:58 24 4
gpt4 key购买 nike

例如我们有以下字符串。“甲壳虫乐队 - 想象”此外,我们在 PostgreSQL 中有大量艺术家姓名列表。

鉴于该字符串,我想使用我的数据库来识别艺术家。

我正在寻找最优化、最快速的算法/技术来执行此操作。因此遍历数据库中的所有记录并查找子字符串是不适用的。

字符串可以是“Imagine - The beatles”、“Imagine, The Beatles”。就像 Youtube 视频中的歌曲名称一样。

Solr、ElasticSearch 或其他技术在这里会有帮助吗?会喜欢一些极客的建议。

最佳答案

这个问题有两个部分。困难的部分是识别艺术家和标题。你有各种各样的变化:

  • 甲壳虫乐队 - 想象一下
  • 甲壳虫乐队 - 想象
  • 想象 - 甲壳虫乐队
  • 甲壳虫乐队,想象一下
  • 想象一下,甲壳虫乐队
  • 想象一下 - 甲壳虫乐队

其他也会包含相册:

  • 想象 - 想象 - 甲壳虫乐队

如果您将这些随机混合在一起,那么您将很难处理它 - 将这些数据规范化为字段将需要一个包含“轨道名称”和“艺术家姓名”的数据库来尝试匹配有很多猜测。

我会做的是忽略整个困惑并将其扔给全文搜索引擎。

test=> select to_tsvector('simple', 'Beatles, The - Imagine');
to_tsvector
---------------------------------
'beatles':1 'imagine':3 'the':2
(1 row)

test=> select to_tsvector('simple', 'Beatles, The - Imagine') @@ to_tsquery('simple', 'Beatles');
?column?
----------
t
(1 row)

如果您能够将其转换为字段分隔的规范化数据,您的搜索将变得更加强大,因为您可以使用 setweightts_rank 对字段进行加权匹配, tsvector|| 等的连接

关于算法:通过数据库从字符串中提取关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21199457/

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