我有一个带有架构的文档表:
CREATE TABLE Frequency (
docid VARCHAR(255),
term VARCHAR(255),
count int,
PRIMARY KEY(docid, term));
要查找我将使用的所有文档的相似性原始分数:
SELECT a.term, b.term, sum(a.count * b.count)
FROM Frequency a, Frequency b
Where a.term = b.term
我不确定为什么会这样,但它确实在测试数据上做了 D*DT,其中 DT 是 D 的转置。
我现在需要计算诸如“国会枪法”之类的术语的查询/文本字符串相似性
我相信这涉及联合和分组,但我所有的查询尝试都失败了,例如:
SELECT *
FROM Frequency a, Frequency b, Frequency c
Where a.term = b.term
UNION
SELECT a.docid, 'congress' as term, 1 as count
UNION
SELECT b.docid , 'gun' as term, 1 as count
UNION
SELECT c.docid , 'laws' as term, 1 as count
Group by docid;
我是这种 SQL 的新手,并且在我试图理解我在做什么时会很感激。
请解释为什么第一个查询有效以及如何处理第二个查询。