gpt4 book ai didi

c# - 标签云算法的建议

转载 作者:行者123 更新时间:2023-12-03 05:35:56 28 4
gpt4 key购买 nike

我有一个 MSSQL 2005 表:

[Companies](
[CompanyID] [int] IDENTITY(1,1) NOT NULL,
[Title] [nvarchar](128),
[Description] [nvarchar](256),
[Keywords] [nvarchar](256)
)

我想为这家公司生成一个标签云。但我已将所有关键字保存在一列中,并用逗号分隔。有关如何通过最常用的关键字生成标签云的任何建议。可能有数百万家公司,每个公司大约有 10 个关键字。

谢谢。

最佳答案

第一步:将关键词拆分成适当的关系(表)。

CREATE TABLE Keywords (KeywordID int IDENTITY(1,1) NOT NULL
, Keyword NVARCHAR(256)
, constraint KeywordsPK primary key (KeywordID)
, constraint KeywordsUnique unique (Keyword));

第 2 步:将公司和标签之间的多对多关系映射到单独的表中,就像所有多对多关系一样:

CREATE TABLE CompanyKeywords (
CompanyID int not null
, KeywordID int not null
, constraint CompanyKeywords primary key (KeywordID, CompanyID)
, constraint CompanyKeyword_FK_Companies
foreign key (CompanyID)
references Companies(CompanyID)
, constraint CompanyKeyword_FK_Keywords
foreign key (KeywordID)
references Keywords (KeywordID));

第 3 步:使用简单的 GROUP BY 查询生成“云”(例如,以“云”表示最常见的 100 个标签):

with cte as (
SELECT TOP 100 KeywordID, count(*) as Count
FROM CompanyKeywords
group by KeywordID
order by count(*) desc)
select k.Keyword, c.Count
from cte c
join Keyword k on c.KeywordID = k.KeywordID;

第 4 步:缓存结果,因为它很少更改且计算成本较高。

关于c# - 标签云算法的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3472010/

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