【问题标题】:Find frequency of each similar word in a large text c#/sql在大文本c#/sql中查找每个相似词的频率
【发布时间】:2017-08-13 08:43:58
【问题描述】:

我需要将单词分组为相似,然后找到频率。

所以像"moron and morons sat on moronic bench with mormons" 这样的文本会产生结果

Moron 3
Sat 1
Mormon 1

我需要能够在一个查询中推送文本或确切单词列表,并频繁接收通用单词。

来自 C#,可以使用 SQL Server。

【问题讨论】:

  • SELECT * FROM sys.dm_fts_index_keywords_by_document(DB_ID('database_name'), OBJECT_ID('table_name') )
  • 谢谢 我需要一些时间来安装 sql 来信任它。请把它作为答案

标签: c# sql-server fulltext-index


【解决方案1】:

你可以使用sys.dm_fts_index_keywords_by_document:

SELECT * 
FROM sys.dm_fts_index_keywords_by_document(DB_ID('db_name')‌​,OBJECT_ID('tab_name'))

【讨论】:

  • 如果您可以添加 sql 为其构建全文索引,我将不胜感激。对于像我这样的白痴:) 我只需要用词来表达,没有短语或任何花哨的东西.. 谢谢!
【解决方案2】:

在 C# 版本中,您可以将 Regex 与 Linq 一起使用;像这样:

var txt = "moron and morons sat on moronic bench with mormons";
var words = Regex.Matches(txt, @"\w+").OfType<Match>().Select(c => c.Value).ToList();
var result = words.Select(c => new {Word = c, Count = words.Count(w => w.Contains(c))})
                  .OrderByDescending(o=> o.Count).ToList();

[ C# Fiddle Demo ]

【讨论】:

  • 不。它返回 9 个项目。无论如何,它不是正则表达式的问题。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-22
  • 2020-01-25
  • 2012-10-10
  • 1970-01-01
  • 2013-02-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多