使用Sql计算TF-IDF
我的数据库中有一个表,其中包含自由文本字段列。
我想知道每个单词在所有行中出现的频率,或者甚至计算所有单词的 TF-IDF,其中我的文档是该字段每行的值。
是否可以使用 Sql 查询来计算此值?如果没有或者有更简单的方法,您能指导我吗?
非常感谢,
乔恩
I have a table in my DB containning a free text field column.
I would like to know the frequency each word appears over all the rows, or maybe even calc a TF-IDF for all words, where my documents are that field's values per row.
Is it possible to calculate this using an Sql Query? if not or there's a simpler way could you please direct me to it?
Many Thanks,
Jon
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 SQL Server 2008 中,根据您的需要,您可以对列应用全文索引,然后查询
sys.dm_fts_index_keywords
和sys.dm_fts_index_keywords_by_document
表值函数来获取出现次数。编辑:实际上,即使不创建持久全文索引,您仍然可以利用解析器
返回
In SQL Server 2008 depending on your needs you could apply full text indexing to the column then query the
sys.dm_fts_index_keywords
andsys.dm_fts_index_keywords_by_document
table valued functions to get the occurrence count.Edit: Actually even without creating a persistent full text index you can still leverage the parser
Returns
SQL Server 2008 的解决方案:
这里是表:
这里是 SQL 查询:
这里是表值函数 Fn_Split(@id int, @separator VARCHAR(32), @string VARCHAR(MAX)) (取自 此处):
Solution for SQL Server 2008:
here is the table:
here is SQL query:
here is table valued function Fn_Split(@id int, @separator VARCHAR(32), @string VARCHAR(MAX)) (taken from here):